/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.absolute\!{position:absolute!important}.fixed{position:fixed}.relative{position:relative}.relative\!{position:relative!important}.static{position:static}.sticky{position:sticky}.start-1{inset-inline-start:calc(var(--spacing)*1)}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-2{margin-top:calc(var(--spacing)*2)}.\!block{display:block!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline\!{display:inline!important}.inline-block{display:inline-block}.table{display:table}.table\!{display:table!important}.size-1{width:calc(var(--spacing)*1);height:calc(var(--spacing)*1)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.h-2{height:calc(var(--spacing)*2)}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.capitalize{text-transform:capitalize}.capitalize\!{text-transform:capitalize!important}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert\!{--tw-invert:invert(100%)!important;filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[link\:classes\/ActiveModel\/AttributeMethods\.html\]{link:classes/ActiveModel/AttributeMethods.html}.\[link\:classes\/ActiveModel\/Callbacks\.html\]{link:classes/ActiveModel/Callbacks.html}.\[link\:classes\/ActiveModel\/Dirty\.html\]{link:classes/ActiveModel/Dirty.html}.\[link\:classes\/ActiveModel\/Errors\.html\]{link:classes/ActiveModel/Errors.html}.\[link\:classes\/ActiveModel\/Naming\.html\]{link:classes/ActiveModel/Naming.html}.\[link\:classes\/ActiveModel\/Serialization\.html\]{link:classes/ActiveModel/Serialization.html}.\[link\:classes\/ActiveModel\/Translation\.html\]{link:classes/ActiveModel/Translation.html}.\[link\:classes\/ActiveModel\/Validations\.html\]{link:classes/ActiveModel/Validations.html}.\[link\:classes\/ActiveModel\/Validator\.html\]{link:classes/ActiveModel/Validator.html}.\[link\:classes\/ActiveRecord\/Aggregations\/ClassMethods\.html\]{link:classes/ActiveRecord/Aggregations/ClassMethods.html}.\[link\:classes\/ActiveRecord\/Associations\/ClassMethods\.html\]{link:classes/ActiveRecord/Associations/ClassMethods.html}.\[link\:classes\/ActiveRecord\/Base\.html\]{link:classes/ActiveRecord/Base.html}.\[link\:classes\/ActiveRecord\/Callbacks\.html\]{link:classes/ActiveRecord/Callbacks.html}.\[link\:classes\/ActiveRecord\/Migration\.html\]{link:classes/ActiveRecord/Migration.html}.\[link\:classes\/ActiveRecord\/Reflection\/ClassMethods\.html\]{link:classes/ActiveRecord/Reflection/ClassMethods.html}.\[link\:classes\/ActiveRecord\/Transactions\/ClassMethods\.html\]{link:classes/ActiveRecord/Transactions/ClassMethods.html}.\[link\:classes\/ActiveRecord\/Validations\.html\]{link:classes/ActiveRecord/Validations.html}.\[link\:doc\/command_line_usage\.rdoc\]{link:doc/command line usage.rdoc}.\[link\:doc\/glossary\.rdoc\]{link:doc/glossary.rdoc}.\[link\:doc\/rakefile\.rdoc\]{link:doc/rakefile.rdoc}.\[link\:doc\/rakefile_rdoc\.html\#label-Importing\+Dependencies\]{link:doc/rakefile rdoc.html#label-Importing + Dependencies}.\[link\:doc\/rational\.rdoc\]{link:doc/rational.rdoc}.\[link\:files\/activejob\/README_md\.html\]{link:files/activejob/README md.html}.\[m\:n\]{m:n}.\[mailto\:james\@grayproductions\.net\]{mailto:james@grayproductions.net}.\[rdoc-label\:method-i-2A_changed-3F\]{rdoc-label:method-i-2A changed-3F}.\[rdoc-label\:method-i-2A_previously_changed-3F\]{rdoc-label:method-i-2A previously changed-3F}.\[rdoc-label\:method-i-2A_previously_was\]{rdoc-label:method-i-2A previously was}.\[rdoc-label\:method-i-2A_was\]{rdoc-label:method-i-2A was}.\[rdoc-label\:method-i-2A_will_change-21\]{rdoc-label:method-i-2A will change-21}.\[rdoc-ref\:\#search\@Argument\+translation\]{rdoc-ref:#search@Argument + translation}.\[rdoc-ref\:ARGF\]{rdoc-ref:ARGF}.\[rdoc-ref\:AttributeAssignment\#attributes\=\]{rdoc-ref:AttributeAssignment#attributes=}.\[rdoc-ref\:Base\#save\]{rdoc-ref:Base#save}.\[rdoc-ref\:BigDecimal\@Not\+a\+Number\]{rdoc-ref:BigDecimal@Not + a + Number}.\[rdoc-ref\:BodyTypeBasic\#content_id\]{rdoc-ref:BodyTypeBasic#content id}.\[rdoc-ref\:BodyTypeBasic\#media_type\]{rdoc-ref:BodyTypeBasic#media type}.\[rdoc-ref\:ClassMethods\#after_subscribe\]{rdoc-ref:ClassMethods#after subscribe}.\[rdoc-ref\:ClassMethods\#after_unsubscribe\]{rdoc-ref:ClassMethods#after unsubscribe}.\[rdoc-ref\:ClassMethods\#around_command\]{rdoc-ref:ClassMethods#around command}.\[rdoc-ref\:ClassMethods\#before_subscribe\]{rdoc-ref:ClassMethods#before subscribe}.\[rdoc-ref\:ClassMethods\#before_unsubscribe\]{rdoc-ref:ClassMethods#before unsubscribe}.\[rdoc-ref\:ClassMethods\#store_accessor\]{rdoc-ref:ClassMethods#store accessor}.\[rdoc-ref\:Config\#idle_response_timeout\]{rdoc-ref:Config#idle response timeout}.\[rdoc-ref\:Config\#open_timeout\]{rdoc-ref:Config#open timeout}.\[rdoc-ref\:ConnectionHandling\#connection\]{rdoc-ref:ConnectionHandling#connection}.\[rdoc-ref\:ConnectionHandling\#establish_connection\]{rdoc-ref:ConnectionHandling#establish connection}.\[rdoc-ref\:ConnectionHandling\#retrieve_connection\]{rdoc-ref:ConnectionHandling#retrieve connection}.\[rdoc-ref\:Core\#new\]{rdoc-ref:Core#new}.\[rdoc-ref\:Core\.configurations\]{rdoc-ref:Core.configurations}.\[rdoc-ref\:Dir\.mkdir\]{rdoc-ref:Dir.mkdir}.\[rdoc-ref\:Dir\.rmdir\]{rdoc-ref:Dir.rmdir}.\[rdoc-ref\:File\#chmod\]{rdoc-ref:File#chmod}.\[rdoc-ref\:File\#chown\]{rdoc-ref:File#chown}.\[rdoc-ref\:File\.open\]{rdoc-ref:File.open}.\[rdoc-ref\:FileUtils\@Path\+Arguments\]{rdoc-ref:FileUtils@Path + Arguments}.\[rdoc-ref\:File\]{rdoc-ref:File}.\[rdoc-ref\:FinderMethods\#find\]{rdoc-ref:FinderMethods#find}.\[rdoc-ref\:Generic\#cancel_response\]{rdoc-ref:Generic#cancel response}.\[rdoc-ref\:Generic\#command_name\]{rdoc-ref:Generic#command name}.\[rdoc-ref\:Generic\#decode\]{rdoc-ref:Generic#decode}.\[rdoc-ref\:Generic\#encode\]{rdoc-ref:Generic#encode}.\[rdoc-ref\:Generic\#service\]{rdoc-ref:Generic#service}.\[rdoc-ref\:IO\@Position\]{rdoc-ref:IO@Position}.\[rdoc-ref\:IRB\@Automatic\+Indentation\]{rdoc-ref:IRB@Automatic + Indentation}.\[rdoc-ref\:IRB\@Color\+Highlighting\]{rdoc-ref:IRB@Color + Highlighting}.\[rdoc-ref\:IRB\@Command-Line\+Arguments\]{rdoc-ref:IRB@Command-Line + Arguments}.\[rdoc-ref\:IRB\@Configuration\+File\]{rdoc-ref:IRB@Configuration + File}.\[rdoc-ref\:IRB\@Custom\+Prompts\]{rdoc-ref:IRB@Custom + Prompts}.\[rdoc-ref\:IRB\@Encodings\]{rdoc-ref:IRB@Encodings}.\[rdoc-ref\:IRB\@Evaluation\+History\]{rdoc-ref:IRB@Evaluation + History}.\[rdoc-ref\:IRB\@IRB\+Loader\]{rdoc-ref:IRB@IRB + Loader}.\[rdoc-ref\:IRB\@Load\+Modules\]{rdoc-ref:IRB@Load + Modules}.\[rdoc-ref\:IRB\@Pre-Defined\+Prompts\]{rdoc-ref:IRB@Pre-Defined + Prompts}.\[rdoc-ref\:IRB\@RI\+Documentation\+Directories\]{rdoc-ref:IRB@RI + Documentation + Directories}.\[rdoc-ref\:IRB\@Session\+Context\]{rdoc-ref:IRB@Session + Context}.\[rdoc-ref\:IRB\@Tracer\]{rdoc-ref:IRB@Tracer}.\[rdoc-ref\:IRB\@Verbosity\]{rdoc-ref:IRB@Verbosity}.\[rdoc-ref\:IRB\@Warnings\]{rdoc-ref:IRB@Warnings}.\[rdoc-ref\:Logger\@Entries\]{rdoc-ref:Logger@Entries}.\[rdoc-ref\:Logger\@Log\+Level\]{rdoc-ref:Logger@Log + Level}.\[rdoc-ref\:Logger\@Program\+Name\]{rdoc-ref:Logger@Program + Name}.\[rdoc-ref\:PStore\@Entries\]{rdoc-ref:PStore@Entries}.\[rdoc-ref\:PStore\@The\+Store\]{rdoc-ref:PStore@The + Store}.\[rdoc-ref\:PStore\@Transactions\]{rdoc-ref:PStore@Transactions}.\[rdoc-ref\:Persistence\#destroy\]{rdoc-ref:Persistence#destroy}.\[rdoc-ref\:Persistence\#new_record\?\]{rdoc-ref:Persistence#new record?}.\[rdoc-ref\:Persistence\#save\]{rdoc-ref:Persistence#save}.\[rdoc-ref\:QueryMethods\#group\]{rdoc-ref:QueryMethods#group}.\[rdoc-ref\:QueryMethods\#select\]{rdoc-ref:QueryMethods#select}.\[rdoc-ref\:QueryMethods\#where\]{rdoc-ref:QueryMethods#where}.\[rdoc-ref\:Relation\#update_all\]{rdoc-ref:Relation#update all}.\[rdoc-ref\:Runnable\#result_code\]{rdoc-ref:Runnable#result code}.\[rdoc-ref\:SchemaStatements\#add_check_constraint\]{rdoc-ref:SchemaStatements#add check constraint}.\[rdoc-ref\:SchemaStatements\#add_exclusion_constraint\]{rdoc-ref:SchemaStatements#add exclusion constraint}.\[rdoc-ref\:SchemaStatements\#add_foreign_key\]{rdoc-ref:SchemaStatements#add foreign key}.\[rdoc-ref\:SchemaStatements\#add_index\]{rdoc-ref:SchemaStatements#add index}.\[rdoc-ref\:SchemaStatements\#add_reference\]{rdoc-ref:SchemaStatements#add reference}.\[rdoc-ref\:SchemaStatements\#add_timestamps\]{rdoc-ref:SchemaStatements#add timestamps}.\[rdoc-ref\:SchemaStatements\#add_unique_constraint\]{rdoc-ref:SchemaStatements#add unique constraint}.\[rdoc-ref\:SchemaStatements\#change_column_default\]{rdoc-ref:SchemaStatements#change column default}.\[rdoc-ref\:SchemaStatements\#change_column_null\]{rdoc-ref:SchemaStatements#change column null}.\[rdoc-ref\:SchemaStatements\#check_constraint_exists\?\]{rdoc-ref:SchemaStatements#check constraint exists?}.\[rdoc-ref\:SchemaStatements\#column_exists\?\]{rdoc-ref:SchemaStatements#column exists?}.\[rdoc-ref\:SchemaStatements\#create_table\]{rdoc-ref:SchemaStatements#create table}.\[rdoc-ref\:SchemaStatements\#foreign_key_exists\?\]{rdoc-ref:SchemaStatements#foreign key exists?}.\[rdoc-ref\:SchemaStatements\#index_exists\?\]{rdoc-ref:SchemaStatements#index exists?}.\[rdoc-ref\:SchemaStatements\#remove_check_constraint\]{rdoc-ref:SchemaStatements#remove check constraint}.\[rdoc-ref\:SchemaStatements\#remove_columns\]{rdoc-ref:SchemaStatements#remove columns}.\[rdoc-ref\:SchemaStatements\#remove_exclusion_constraint\]{rdoc-ref:SchemaStatements#remove exclusion constraint}.\[rdoc-ref\:SchemaStatements\#remove_foreign_key\]{rdoc-ref:SchemaStatements#remove foreign key}.\[rdoc-ref\:SchemaStatements\#remove_index\]{rdoc-ref:SchemaStatements#remove index}.\[rdoc-ref\:SchemaStatements\#remove_reference\]{rdoc-ref:SchemaStatements#remove reference}.\[rdoc-ref\:SchemaStatements\#remove_timestamps\]{rdoc-ref:SchemaStatements#remove timestamps}.\[rdoc-ref\:SchemaStatements\#remove_unique_constraint\]{rdoc-ref:SchemaStatements#remove unique constraint}.\[rdoc-ref\:SchemaStatements\#rename_column\]{rdoc-ref:SchemaStatements#rename column}.\[rdoc-ref\:SchemaStatements\#rename_index\]{rdoc-ref:SchemaStatements#rename index}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Assigning\]{rdoc-ref:SequenceSet@Methods + for + Assigning}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Comparing\]{rdoc-ref:SequenceSet@Methods + for + Comparing}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Creating\+a\+SequenceSet\]{rdoc-ref:SequenceSet@Methods + for + Creating + a + SequenceSet}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Deleting\]{rdoc-ref:SequenceSet@Methods + for + Deleting}.\[rdoc-ref\:SequenceSet\@Methods\+for\+IMAP\+String\+Formatting\]{rdoc-ref:SequenceSet@Methods + for + IMAP + String + Formatting}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Iterating\]{rdoc-ref:SequenceSet@Methods + for + Iterating}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Querying\]{rdoc-ref:SequenceSet@Methods + for + Querying}.\[rdoc-ref\:SequenceSet\@Methods\+for\+Set\+Operations\]{rdoc-ref:SequenceSet@Methods + for + Set + Operations}.\[rdoc-ref\:SomeClass\]{rdoc-ref:SomeClass}.\[rdoc-ref\:String\#dump\]{rdoc-ref:String#dump}.\[rdoc-ref\:Time\#strftime\]{rdoc-ref:Time#strftime}.\[rdoc-ref\:dig_methods\.rdoc\]{rdoc-ref:dig methods.rdoc}.\[rdoc-ref\:doc\/command_line_usage\.rdoc\]{rdoc-ref:doc/command line usage.rdoc}.\[rdoc-ref\:doc\/dig_methods\.rdoc\]{rdoc-ref:doc/dig methods.rdoc}.\[rdoc-ref\:doc\/glossary\.rdoc\]{rdoc-ref:doc/glossary.rdoc}.\[rdoc-ref\:doc\/rakefile\.rdoc\]{rdoc-ref:doc/rakefile.rdoc}.\[rdoc-ref\:doc\/rational\.rdoc\]{rdoc-ref:doc/rational.rdoc}.\[rdoc-ref\:lib\/racc\/rdoc\/grammar\.en\.rdoc\]{rdoc-ref:lib/racc/rdoc/grammar.en.rdoc}.\[rdoc-ref\:lib\/rubygems\/LICENSE\.txt\]{rdoc-ref:lib/rubygems/LICENSE.txt}.\[rdoc\:coverage\]{rdoc:coverage}.\[ruby-core\:4261\]{ruby-core:4261}.\[ruby-core\:70667\]{ruby-core:70667}.\[ruby-core\:80965\]{ruby-core:80965}.\[ruby-core\:85266\]{ruby-core:85266}.\[ruby-dev\:27513\]{ruby-dev:27513}.\[ruby-dev\:28445\]{ruby-dev:28445}.\[ruby-dev\:29520\]{ruby-dev:29520}.\[test-unit-users-en\:00026\]{test-unit-users-en:26}.\[test-unit-users-en\:00035\]{test-unit-users-en:35}.\[test-unit-users-en\:00089\]{test-unit-users-en:89}.\[test-unit-users-en\:00098\]{test-unit-users-en:98}}:root{--bg-color:#37393c;--active-top:#4b9edb;--active-bottom:#1f77d9;--active-text:#0b2440;--nav-bottom:#5471a1;--nav-top:#476089;--dark-text:#36393b;--gray-text:#8e969b;--light-bg:#f5f5f5;--border-color:#cbcbcb;--track-border:#ebebeb}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;background-color:var(--bg-color);font-family:Helvetica Neue,Helvetica,Arial,sans-serif}a,a:hover{text-decoration:none}ul{margin:0;padding:0;list-style-type:none}h1,h2,h3,h4{margin:0}.container{width:1200px;min-height:100%;margin:0 auto;position:relative}header{height:120px;position:relative}header:after{content:"";clear:both;display:table}header #logo{float:left;margin-top:40px}header #logo img{width:auto;height:40px}header ul#iphone{float:right;margin:0}header ul#iphone li{float:right;cursor:pointer;background:linear-gradient(180deg,var(--nav-bottom)0%,var(--nav-bottom)49%,var(--nav-top)50%,var(--nav-top)100%);border-radius:3px;height:30px;margin:40px 0 0 20px;padding:0 12px;box-shadow:inset 0 1px 1px #ffffff5c,0 1px 1px #000000ad}header ul#iphone li:active{position:relative;top:2px}header ul#iphone li a,header ul#iphone li span{color:#0b111d;text-shadow:0 1px #ffffff17;font-size:13px;font-weight:700;line-height:30px;display:block}#content{height:calc(100vh - 120px);display:flex;position:relative}#content nav{flex-shrink:0;width:240px;height:calc(100vh - 120px);margin-left:-20px;padding-left:20px;position:fixed;top:120px;overflow:visible auto}#content nav h4{color:#fff;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px #0000006e;margin-top:15px;margin-bottom:5px;margin-left:0;padding-left:10px;font-size:11px;font-weight:600}#content nav h4:first-child{margin-top:0}#content nav ul{margin-bottom:10px}#content nav ul li{width:240px;margin-left:-20px;padding:12px 0 12px 30px;font-size:13px}#content nav ul li.secondary{display:none}#content nav ul li.show-secondary{display:block!important}#content nav ul li a,#content nav ul li button{text-transform:capitalize;color:#888;cursor:pointer;text-align:left;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Crect x='4' y='4' width='6' height='6' fill='%23666' transform='rotate(45 7 7)'/%3E%3C/svg%3E") 0/14px no-repeat;border:none;width:100%;padding-left:22px;font-family:inherit;font-size:13px;display:block}#content nav ul li a:hover,#content nav ul li button:hover{color:#bbb}#content nav ul li#genre-top a{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpolygon points='7,1 8.5,5.5 13,6 9.5,9 10.5,13.5 7,11 3.5,13.5 4.5,9 1,6 5.5,5.5' fill='%23888'/%3E%3C/svg%3E")}#content nav ul li.active{background:linear-gradient(180deg,var(--active-top)0%,var(--active-bottom)100%);border-radius:3px 0 0 3px;box-shadow:inset 0 1px 1px #ffffff5c,0 1px 1px #000000ad}#content nav ul li.active a,#content nav ul li.active button{color:var(--active-text);text-shadow:0 1px #ffffff29;font-weight:700}#content nav ul li#genre-top.active a{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpolygon points='7,1 8.5,5.5 13,6 9.5,9 10.5,13.5 7,11 3.5,13.5 4.5,9 1,6 5.5,5.5' fill='%230b2440'/%3E%3C/svg%3E")}#content nav ul li.active a{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Crect x='4' y='4' width='6' height='6' fill='%230b2440' transform='rotate(45 7 7)'/%3E%3C/svg%3E")}#content nav ul li#more-genres a,#content nav ul li#more-genres button,#content nav ul li.about a,#content nav ul li.about button,#content nav ul li.sitemap a{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpolygon points='4,5 10,5 7,10' fill='%23666'/%3E%3C/svg%3E")}#content #playlist{background-color:var(--light-bg);border-radius:3px 3px 0 0;flex-direction:column;width:700px;height:calc(100vh - 120px);margin-left:220px;display:flex;overflow:hidden;box-shadow:0 5px 5px #000000bf}#content #playlist h1{text-transform:uppercase;color:var(--dark-text);letter-spacing:.5px;flex-shrink:0;margin:0;padding:20px 30px;font-size:13px;font-weight:700}#content #playlist h1 span{color:var(--gray-text);font-weight:400}#content #playlist .tracks{border:1px solid var(--border-color);scrollbar-width:none;-ms-overflow-style:none;background:#fff;border-radius:3px;flex:1;margin:0 30px 30px;overflow-y:auto}#content #playlist .tracks::-webkit-scrollbar{display:none}#content #playlist .tracks li{border-bottom:1px solid var(--track-border);cursor:pointer;align-items:center;padding:15px 20px;display:flex}#content #playlist .tracks li:last-child{border-bottom:none}#content #playlist .tracks li img{background-color:#d0d0d0;border-radius:3px;flex-shrink:0;width:50px;height:50px;margin-right:15px;box-shadow:0 1px 2px #0003}#content #playlist .tracks li .track-info{flex:1;min-width:0}#content #playlist .tracks li h2{color:var(--dark-text);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:14px;font-weight:600;line-height:1.4;overflow:hidden}#content #playlist .tracks li h3{color:var(--gray-text);font-size:12px;font-weight:400;line-height:1.3}#content #playlist .tracks li .duration{color:var(--gray-text);flex-shrink:0;margin-left:15px;font-size:12px}#content #player{border-radius:3px;width:240px;position:fixed;top:120px;right:calc(50% - 600px);overflow:hidden;box-shadow:0 2px 4px #00000080}#content #player #track-art{background-color:#e0e0e0;width:240px;height:240px;position:relative}#content #player #track-art .img{background-position:50%;background-size:cover;width:100%;height:100%}#content #player #track-art .fullscreen-btn{cursor:pointer;color:#fff;background:#00000080;border:none;border-radius:3px;padding:5px 8px;font-size:12px;position:absolute;top:10px;right:10px}#content #player #now_playing{background:linear-gradient(180deg,var(--active-top)0%,var(--active-bottom)100%);padding:20px;box-shadow:inset 0 1px 1px #ffffff5c}#content #player #now_playing h2{color:#fff;text-shadow:0 1px #0000001a;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;padding-left:20px;font-size:14px;font-weight:600;position:relative;overflow:hidden}#content #player #now_playing h2:before{content:"♪";font-size:14px;position:absolute;left:0}#content #player #now_playing h3{color:var(--active-text);text-shadow:0 1px #ffffff29;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;padding-left:20px;font-size:12px;font-weight:400;position:relative;overflow:hidden}#content #player #now_playing h3:before{content:"♫";font-size:12px;position:absolute;left:0}#content #player #now_playing .album-name{color:var(--active-text);opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-bottom:12px;padding-left:20px;font-size:11px;position:relative;overflow:hidden}#content #player #now_playing .album-name:before{content:"●";font-size:8px;position:absolute;top:2px;left:0}#content #player .statusbar{cursor:pointer;background:#00000040;border-radius:10px;width:100%;height:6px;margin:15px 0;position:relative;overflow:hidden}#content #player .statusbar .position{background:#fff;border-radius:10px;width:35%;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0000004d}#content #player .controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex}#content #player .controls button{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}#content #player .controls button:active{transform:scale(.95)}#content #player .controls button svg{fill:currentColor}#content #player .controls #play,#content #player .controls #pause{background:#ffffff40;order:1;width:48px;height:48px}#content #player .controls #play svg,#content #player .controls #pause svg{width:22px;height:22px}#content #player .controls #previous{order:2;width:34px;height:34px}#content #player .controls #next{order:3;width:34px;height:34px}#content #player .controls #previous svg,#content #player .controls #next svg{width:14px;height:14px}#content #player .controls #repeat,#content #player .controls #shuffle{opacity:.7;background:0 0;width:26px;height:26px}#content #player .controls #repeat{order:4}#content #player .controls #shuffle{order:5}#content #player .controls #repeat:hover,#content #player .controls #shuffle:hover{opacity:1;background:0 0}#content #player .controls #repeat svg,#content #player .controls #shuffle svg{width:16px;height:16px}#content #player .controls #repeat.active,#content #player .controls #shuffle.active{opacity:1;color:#fff}#content #player #now_playing .favorite-btn{cursor:pointer;color:var(--active-text);opacity:.7;background:0 0;border:none;font-size:18px;position:absolute;top:20px;right:20px}#content #player #now_playing .favorite-btn:hover{opacity:1}.reveal-modal-bg{z-index:40;background:#00000073;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.reveal-modal-bg.show{display:block}.reveal-modal{z-index:41;background:#fff;border-radius:4px;width:520px;margin-left:-260px;padding:30px;display:none;position:fixed;top:100px;left:50%;box-shadow:0 0 10px #0006}.reveal-modal.show{display:block}.reveal-modal h3{color:var(--dark-text);margin-bottom:15px;font-size:21px;line-height:1.3}.reveal-modal p{color:var(--gray-text);margin-bottom:15px;font-size:15px;line-height:1.7}.reveal-modal hr{border:0;border-top:1px solid #eee;margin:20px 0}.reveal-modal .close-reveal-modal{cursor:pointer;color:var(--gray-text);background:0 0;border:none;font-size:22px;position:absolute;top:10px;right:15px}.clearfix:after{content:"";clear:both;display:table}#content #playlist .tracks li{transition:background-color .15s}#content #playlist .tracks li:hover{background:#fafafa}#content #playlist .tracks li.active-track{background:linear-gradient(#4b9edb1f 0%,#fff 50%)}#content nav ul li a,#content nav ul li button{transition:color .15s}#content #player .controls button{transition:background-color .15s,opacity .15s}#content #player .controls button:hover{background:#ffffff59}#content #player .controls button:active{opacity:.8}#content #player #track-art .img{transition:opacity .2s}#content #player .statusbar .position{transition:width .1s linear}.reveal-modal{opacity:0;transition:opacity .15s}.reveal-modal.show{opacity:1}.reveal-modal-bg{opacity:0;transition:opacity .15s}.reveal-modal-bg.show{opacity:1}#content nav ul li.secondary{opacity:0;transition:opacity .15s}#content nav ul li.secondary.show-secondary{opacity:1}.reveal-modal .avatars{text-align:center;justify-content:center;gap:10px;margin-top:15px;display:flex}.reveal-modal .avatars img{object-fit:cover;border-radius:4px;width:60px;height:60px}.reveal-modal small p{font-size:12px;line-height:1.5}@media (max-width:1240px){.container{width:100%;padding:0 20px}#content nav{margin-left:0;padding-left:0}#content nav ul li{width:220px;margin-left:0}#content #player{display:none}#content #playlist{width:calc(100% - 240px)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}