/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@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;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--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;-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{.grid{display:grid}}:root{--bg:#fff;--surface:#f7f7f7;--surface-warm:#eee;--fg:#111;--fg-2:#3a3a3a;--muted:#707070;--meta:#111;--border:#d9d9d9;--border-soft:#eee;--accent:#111;--accent-on:#fff;--accent-hover:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--accent-hover:color-mix(in oklab, var(--accent), black 8%)}}:root{--accent-active:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--accent-active:color-mix(in oklab, var(--accent), black 14%)}}:root{--success:#168a46;--warn:#b7791f;--danger:#c53030;--font-display:Inter, system-ui, sans-serif;--font-body:Inter, system-ui, sans-serif;--font-mono:"SF Mono", ui-monospace, Menlo, monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:24px;--text-2xl:36px;--text-3xl:54px;--text-4xl:76px;--leading-body:1.52;--leading-tight:1.06;--tracking-display:-.025em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--section-y-desktop:96px;--section-y-tablet:68px;--section-y-phone:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--elev-flat:none;--elev-ring:0 0 0 1px var(--border);--elev-raised:0 16px 40px #0000001a;--focus-ring:0 0 0 3px #1111112e;--motion-fast:.15s;--motion-base:.24s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--container-max:1180px;--container-gutter-desktop:36px;--container-gutter-tablet:24px;--container-gutter-phone:16px;--accent-soft:var(--fg)}@supports (color:color-mix(in lab, red, red)){:root{--accent-soft:color-mix(in oklch, var(--fg) 6%, transparent)}}:root{--fg-soft:var(--fg)}@supports (color:color-mix(in lab, red, red)){:root{--fg-soft:color-mix(in oklch, var(--fg) 4%, transparent)}}:root{--fs-h1:clamp(32px, 5vw, 48px);--fs-h2:clamp(24px, 3.5vw, 36px);--fs-h3:20px;--fs-lead:18px;--fs-body:16px;--fs-meta:13px;--gap-xs:8px;--gap-sm:12px;--gap-md:20px;--gap-lg:32px;--gap-xl:48px;--sidebar-w:240px;--ph-label:#5b5b5b}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--leading-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:0 0;border:none}p{text-wrap:pretty;margin:0}h1,h2,h3,h4{text-wrap:balance;font-family:var(--font-display);margin:0}input,textarea,select{font:inherit}.h1,h1{font-size:var(--fs-h1);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);font-weight:600}.h2,h2{font-size:var(--fs-h2);letter-spacing:-.015em;font-weight:600;line-height:1.12}.h3,h3{font-size:var(--fs-h3);font-weight:600;line-height:1.3}.lead{font-size:var(--fs-lead);color:var(--muted);max-width:60ch;line-height:1.55}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--gap-sm)}.meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border:1px solid #0000;padding:10px 18px;font-weight:500;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg);color:var(--fg);border-color:var(--border);box-shadow:var(--elev-ring)}.btn-secondary:hover{border-color:var(--fg-2);background:var(--surface)}.btn-ghost{color:var(--fg-2);background:0 0;border-color:#0000;padding-inline:10px}.btn-ghost:hover{color:var(--fg);background:var(--fg-soft)}.btn-sm{font-size:var(--text-xs);padding:6px 12px}.btn-icon{border-radius:var(--radius-md);width:40px;height:40px;padding:0}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);color:var(--fg-2);font-weight:500}.input,.textarea,.select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--fg);font-size:var(--text-base);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);padding:12px 16px}.input:focus,.textarea:focus,.select:focus{border-color:var(--fg);box-shadow:var(--focus-ring);outline:none}.textarea{resize:vertical;min-height:120px;line-height:1.55}.search-input{border-radius:var(--radius-md);font-size:var(--text-lg);background:var(--bg);box-shadow:var(--elev-ring);padding:14px 18px 14px 44px}.search-wrap{position:relative}.search-wrap svg{color:var(--muted);pointer-events:none;width:20px;height:20px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.pill{background:var(--surface);color:var(--fg-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;padding:5px 12px;font-size:11px;display:inline-flex}.tag{background:var(--bg);color:var(--fg-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);align-items:center;padding:4px 10px;display:inline-flex}.tag.is-active{background:var(--fg);color:var(--accent-on);border-color:var(--fg)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--elev-ring)}.panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-ring);overflow:hidden}.ph-img{background:linear-gradient(180deg, var(--surface-warm), var(--surface));border:1px solid var(--border);border-radius:var(--radius-md);aspect-ratio:16/10;color:var(--ph-label);font-family:var(--font-mono);letter-spacing:.04em;place-items:center;font-size:11px;display:grid;overflow:hidden}.ph-img.square{aspect-ratio:1}.ph-img.tall{aspect-ratio:3/4}.ph-img img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--bg);border-right:1px solid var(--border);padding:var(--space-6) var(--space-4);gap:var(--space-6);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-display);padding:var(--space-2) var(--space-3);font-weight:600;display:flex}.sidebar-brand svg{width:28px;height:28px;color:var(--fg)}.sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.nav-item{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--fg-2);transition:background var(--motion-fast), color var(--motion-fast);padding:10px 14px;font-weight:500;display:flex}.nav-item:hover{background:var(--fg-soft);color:var(--fg)}.nav-item.is-active{background:var(--surface);color:var(--fg);box-shadow:var(--elev-ring);font-weight:600}.nav-item svg{flex-shrink:0;width:18px;height:18px}.sidebar-foot{padding-top:var(--space-4);border-top:1px solid var(--border-soft)}.app-main{flex-direction:column;min-width:0;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-soft);background:var(--bg);display:flex}@supports (color:color-mix(in lab, red, red)){.app-header{background:color-mix(in oklch, var(--bg) 92%, transparent)}}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;position:sticky;top:0}.app-content{padding:var(--space-6);flex:1}.app-content-narrow{width:100%;max-width:720px;margin-inline:auto}.link-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.link-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-ring);transition:border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);cursor:pointer;text-align:left;color:inherit;display:block;overflow:hidden}.link-card:hover{border-color:var(--fg-2);box-shadow:var(--elev-raised)}.link-card .ph-img{border:none;border-bottom:1px solid var(--border-soft);aspect-ratio:16/9;border-radius:0}.link-card-body{padding:var(--space-4)}.link-card h3{font-size:var(--text-base);margin-bottom:var(--space-1);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.link-card .domain{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted)}.link-card-meta{margin-top:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.collection-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.collection-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--elev-ring);gap:var(--space-4);cursor:pointer;transition:border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard);flex-direction:column;display:flex}.collection-card:hover{border-color:var(--fg-2);box-shadow:var(--elev-raised)}.collection-preview{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.collection-preview .mini{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-soft)}.collection-card h3{font-size:var(--text-lg)}.collection-card .count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted)}.detail-layout{gap:var(--space-6);grid-template-columns:1.4fr 1fr;align-items:start;display:grid}.detail-shot{border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--elev-ring);overflow:hidden}.detail-shot .ph-img{aspect-ratio:16/10;border:none;border-radius:0;min-height:320px}.detail-meta{gap:var(--space-5);flex-direction:column;display:flex}.meta-row{gap:var(--space-1);flex-direction:column;display:flex}.meta-row .label{font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.meta-row .value{font-size:var(--text-base);color:var(--fg)}.action-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.search-hero{max-width:640px;margin:0 auto var(--space-8);text-align:center}.search-hero h1{margin-bottom:var(--space-3)}.result-list{gap:var(--space-3);flex-direction:column;max-width:800px;margin:0 auto;display:flex}.result-item{gap:var(--space-4);padding:var(--space-4);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-ring);transition:border-color var(--motion-fast);grid-template-columns:120px 1fr auto;align-items:center;display:grid}.result-item:hover{border-color:var(--fg-2)}.result-item .ph-img{aspect-ratio:16/10;border-radius:var(--radius-sm);min-height:0}.result-item h3{font-size:var(--text-base);margin-bottom:var(--space-1)}.result-item p{font-size:var(--text-sm);color:var(--muted)}.match{background:var(--surface);color:var(--fg);border-radius:var(--radius-sm);padding:0 4px;font-weight:500}.prompt-chips{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.settings-layout{gap:var(--space-8);grid-template-columns:200px 1fr;max-width:900px;display:grid}.tab-list{gap:var(--space-1);flex-direction:column;display:flex}.tab-btn{text-align:left;border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--fg-2);padding:10px 14px;font-weight:500}.tab-btn:hover{background:var(--fg-soft)}.tab-btn.is-active{background:var(--surface);color:var(--fg);box-shadow:var(--elev-ring);font-weight:600}.tab-panel{display:none}.tab-panel.is-active{display:block}.toggle-row{padding:var(--space-4) 0;border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;display:flex}.toggle-row:last-child{border-bottom:none}.toggle{background:var(--border);border-radius:var(--radius-pill);width:44px;height:26px;transition:background var(--motion-fast);flex-shrink:0;position:relative}.toggle:after{content:"";background:var(--bg);width:20px;height:20px;transition:transform var(--motion-fast);box-shadow:var(--elev-ring);border-radius:50%;position:absolute;top:3px;left:3px}.toggle.is-on{background:var(--accent)}.toggle.is-on:after{transform:translate(18px)}.add-flow{max-width:560px;margin:0 auto}.link-edit{max-width:640px;margin:0 auto}.link-edit .preview-panel{margin-top:0}.link-edit-layout{gap:var(--space-6);flex-direction:column;display:flex}.link-edit-fields{flex-direction:column;min-width:0;display:flex}.link-edit-preview .preview-panel{height:100%}.link-edit-shot{margin-top:var(--space-4);min-height:240px}.preview-panel{margin-top:var(--space-6);padding:var(--space-6)}.preview-panel.is-hidden{display:none}.collection-picker{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.shot-toolbar{margin-bottom:var(--space-2)}.app-content--wide{max-width:none}.link-edit-actions{gap:var(--space-3);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-soft);flex-wrap:wrap;display:flex}.link-edit-actions .btn-primary{flex:1;min-width:160px}.tag-editor{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);flex-direction:column;display:flex}.tag-editor:focus-within{border-color:var(--fg);box-shadow:var(--focus-ring)}.tag-editor-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag-removable{gap:var(--space-1);padding-right:var(--space-1)}.tag-removable button{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--muted);justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.tag-removable button:hover{color:var(--fg);background:var(--surface)}.tag-editor-input{box-shadow:none;border:none;padding:6px 4px}.tag-editor-input:focus{box-shadow:none;border-color:#0000}.btn-primary.is-dirty:after{content:" · unsaved";opacity:.72;font-weight:400}.auth-shell{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-brand{background:var(--surface);border-right:1px solid var(--border);padding:var(--space-12) var(--space-8);justify-content:space-between;gap:var(--space-8);flex-direction:column;display:flex}.auth-brand-top{max-width:420px}.auth-brand h1{margin-top:var(--space-4);font-size:clamp(28px,4vw,40px)}.auth-brand .lead{max-width:36ch;margin-top:var(--space-3)}.auth-mosaic{gap:var(--space-3);grid-template-columns:repeat(3,1fr);max-width:360px;display:grid}.auth-mosaic .tile{aspect-ratio:1;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;text-align:center;padding:var(--space-2);place-items:center;font-size:9px;display:grid}.auth-mosaic .tile.wide{aspect-ratio:2;grid-column:span 2}.auth-form-side{padding:var(--space-8) var(--space-6);background:var(--bg);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px}.auth-card h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}.auth-card .sub{font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-8)}.auth-card .sub a{text-underline-offset:3px;color:var(--fg);font-weight:500;text-decoration:underline}.auth-card .sub a:hover{color:var(--fg-2)}.auth-fields{gap:var(--space-5);flex-direction:column;display:flex}.auth-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.auth-check{align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--fg-2);cursor:pointer;display:flex}.auth-check input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.auth-check a{text-underline-offset:2px;color:var(--fg);text-decoration:underline}.auth-forgot{font-size:var(--text-sm);color:var(--fg-2);text-underline-offset:3px;text-decoration:underline}.auth-forgot:hover{color:var(--fg)}.auth-submit{width:100%;margin-top:var(--space-6)}.password-wrap{position:relative}.password-wrap .input{padding-right:44px}.password-toggle{color:var(--muted);border-radius:var(--radius-sm);padding:4px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{color:var(--fg)}.password-toggle:focus-visible{box-shadow:var(--focus-ring);outline:none}.field-error{font-size:var(--text-xs);color:var(--danger);margin-top:var(--space-1);display:none}.field.has-error .input{border-color:var(--danger)}.field.has-error .field-error{display:block}.strength-bar{gap:var(--space-1);margin-top:var(--space-2);display:flex}.strength-bar span{background:var(--border);border-radius:var(--radius-pill);height:3px;transition:background var(--motion-fast);flex:1}.strength-bar[data-level="1"] span:first-child{background:var(--danger)}.strength-bar[data-level="2"] span:nth-child(-n+2),.strength-bar[data-level="3"] span:nth-child(-n+3){background:var(--warn)}.strength-bar[data-level="4"] span{background:var(--success)}.strength-label{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-1)}.auth-divider{align-items:center;gap:var(--space-4);margin:var(--space-6) 0;font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-oauth{gap:var(--space-3);flex-direction:column;display:flex}.btn-oauth{justify-content:center;align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);width:100%;font-size:var(--text-sm);color:var(--fg);box-shadow:var(--elev-ring);transition:border-color var(--motion-fast), background var(--motion-fast);padding:10px 18px;font-weight:500;display:inline-flex}.btn-oauth:hover{border-color:var(--fg-2);background:var(--surface)}.btn-oauth svg{flex-shrink:0;width:18px;height:18px}.auth-back{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-8);display:inline-flex}.auth-back:hover{color:var(--fg)}.auth-back svg{width:16px;height:16px}.launcher{min-height:100vh;padding:var(--space-12) var(--container-gutter-desktop);max-width:var(--container-max);margin-inline:auto}.launcher-hero{max-width:640px;margin-bottom:var(--space-12)}.launcher-hero .row{flex-wrap:wrap}.launcher-hero .btn{min-height:44px}.screen-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.screen-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-ring);transition:border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);color:inherit;display:block;overflow:hidden}.screen-card:hover{border-color:var(--fg-2);box-shadow:var(--elev-raised);transform:translateY(-2px)}.screen-card-preview{padding:var(--space-4);background:var(--surface);border-bottom:1px solid var(--border-soft)}.screen-card-preview .ph-img{aspect-ratio:16/9;border-radius:var(--radius-md)}.screen-card-body{padding:var(--space-5)}.screen-card-body h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}.screen-card-body p{font-size:var(--text-sm);color:var(--muted)}.screen-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-2)}.screen-card:focus-visible,.link-card:focus-visible,.collection-card:focus-visible,.result-item:focus-visible{border-color:var(--fg);box-shadow:var(--focus-ring);outline:none}.toast{bottom:var(--space-6);background:var(--fg);color:var(--accent-on);border-radius:var(--radius-pill);font-size:var(--text-sm);opacity:0;transition:transform var(--motion-base) var(--ease-standard), opacity var(--motion-base);z-index:100;pointer-events:none;padding:12px 20px;font-weight:500;position:fixed;left:50%;transform:translate(-50%)translateY(80px)}.toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}.bottom-nav{background:var(--bg);border-top:1px solid var(--border);padding:var(--space-2) var(--space-4);padding-bottom:max(var(--space-2), env(safe-area-inset-bottom));z-index:20;justify-content:space-around;display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--muted);padding:var(--space-2);flex-direction:column;align-items:center;gap:2px;min-width:56px;font-size:10px;display:flex}.bottom-nav a.is-active{color:var(--fg);font-weight:600}.bottom-nav svg{width:22px;height:22px}.row{align-items:center;gap:var(--space-4);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.stack{flex-direction:column;display:flex}.stack>*+*{margin-top:var(--space-4)}.filter-bar{gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.section{padding-block:var(--space-6)}.hidden{display:none!important}@media (width>=1024px){.link-edit{max-width:none;margin:0}.link-edit-layout{gap:var(--space-8);grid-template-columns:minmax(0,1.15fr) minmax(320px,420px);align-items:start;display:grid}.link-edit-preview{top:var(--space-6);position:sticky}.ph-img.link-edit-shot{aspect-ratio:auto;min-height:min(72vh,720px);max-height:calc(100vh - 180px)}}@media (width>=1280px){.link-edit-layout{gap:var(--space-12);grid-template-columns:minmax(0,1.25fr) minmax(360px,480px)}.ph-img.link-edit-shot{min-height:min(78vh,820px)}}@media (width>=1440px){.link-edit-layout{grid-template-columns:minmax(0,1.35fr) minmax(400px,520px)}}@media (width<=1024px){.detail-layout,.settings-layout{grid-template-columns:1fr}.tab-list{flex-flow:wrap}.result-item{grid-template-columns:100px 1fr}.result-item .btn{grid-column:1/-1;justify-self:start}}@media (width<=900px){.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.auth-form-side{padding:var(--space-8) var(--container-gutter-phone);min-height:100vh}}@media (width<=768px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.bottom-nav{display:flex}.app-content{padding:var(--space-4);padding-bottom:80px}.app-header{padding:var(--space-3) var(--space-4)}.link-grid,.collection-grid{grid-template-columns:1fr}.launcher{padding:var(--space-8) var(--container-gutter-phone)}}@media (width<=360px){.app-header .btn-secondary{display:none}}.lp{flex-direction:column;min-height:100vh;display:flex}.lp-nav{z-index:30;background:var(--bg);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.lp-nav{background:color-mix(in oklch, var(--bg) 88%, transparent)}}.lp-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-soft)}.lp-nav-inner{max-width:var(--container-max);padding:var(--space-3) var(--container-gutter-desktop);justify-content:space-between;align-items:center;gap:var(--space-6);min-height:64px;margin-inline:auto;display:flex}.lp-brand{align-items:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-display);font-weight:600;display:inline-flex}.lp-brand svg{width:26px;height:26px;color:var(--accent);flex-shrink:0}.lp-nav-links{align-items:center;gap:var(--space-2);display:flex}.lp-nav-link{border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--fg-2);transition:background var(--motion-fast), color var(--motion-fast);padding:8px 12px;font-weight:500}.lp-nav-link:hover{color:var(--fg);background:var(--fg-soft)}.lp-nav-link:focus-visible{box-shadow:var(--focus-ring);outline:none}.lp-nav-actions{align-items:center;gap:var(--space-3);display:flex}.lp-nav-actions .btn{min-height:40px}.lp-section{max-width:var(--container-max);width:100%;padding:clamp(56px, 8vw, var(--section-y-desktop)) var(--container-gutter-desktop);margin-inline:auto}.lp-section-head{max-width:640px;margin-bottom:var(--space-12)}.lp-section-head.center{text-align:center;margin-inline:auto}.lp-section-head h2{margin-bottom:var(--space-4)}.lp-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(32px,5vw,72px);padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(48px,7vw,88px);display:grid}.lp-hero-content{max-width:540px}.lp-hero h1{margin:var(--space-4) 0;font-size:clamp(38px,5.4vw,60px)}.lp-hero .lead{max-width:46ch;font-size:clamp(17px,1.6vw,20px)}.lp-hero-cta{gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.lp-hero-cta .btn{min-height:48px;font-size:var(--text-base);padding-inline:22px}.lp-hero-note{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--muted)}.browser-frame{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);box-shadow:var(--elev-raised);overflow:hidden}.browser-bar{align-items:center;gap:var(--space-3);background:var(--surface);border-bottom:1px solid var(--border-soft);padding:10px 14px;display:flex}.browser-dots{flex-shrink:0;gap:6px;display:inline-flex}.browser-dots i{background:var(--border);border-radius:50%;width:11px;height:11px;display:block}.browser-url{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius-pill);min-width:0;font-family:var(--font-mono);color:var(--muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;padding:5px 14px;font-size:11px;overflow:hidden}.browser-frame img{width:100%;height:auto;display:block}.lp-sources{border-block:1px solid var(--border-soft);background:var(--surface)}.lp-sources-inner{max-width:var(--container-max);padding:var(--space-6) var(--container-gutter-desktop);align-items:center;gap:var(--space-4) var(--space-8);flex-wrap:wrap;margin-inline:auto;display:flex}.lp-sources p{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.lp-sources ul{gap:var(--space-3) var(--space-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.lp-sources li{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-2)}.feature-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.feature-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--elev-ring);gap:var(--space-3);transition:border-color var(--motion-base) var(--ease-standard), box-shadow var(--motion-base) var(--ease-standard), transform var(--motion-base) var(--ease-standard);flex-direction:column;display:flex}.feature-card:hover{border-color:var(--fg-2);box-shadow:var(--elev-raised);transform:translateY(-2px)}.feature-icon{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-soft);width:44px;height:44px;color:var(--fg);margin-bottom:var(--space-2);place-items:center;display:grid}.feature-icon svg{width:22px;height:22px}.feature-card h3{font-size:var(--text-lg)}.feature-card p{font-size:var(--text-sm);color:var(--muted)}.lp-spotlight{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}.lp-spotlight+.lp-spotlight{margin-top:clamp(56px,8vw,96px)}.lp-spotlight.reverse .lp-spotlight-media{order:-1}.lp-spotlight-body{max-width:460px}.lp-spotlight-body h2{margin-bottom:var(--space-4);font-size:clamp(26px,3vw,38px)}.lp-spotlight-body .lead{margin-bottom:var(--space-5)}.lp-feature-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lp-feature-list li{gap:var(--space-3);font-size:var(--text-sm);color:var(--fg-2);display:flex}.lp-feature-list svg{width:18px;height:18px;color:var(--fg);flex-shrink:0;margin-top:2px}.lp-cta{background:var(--accent);color:var(--accent-on)}.lp-cta-inner{max-width:var(--container-max);padding:clamp(56px, 8vw, 96px) var(--container-gutter-desktop);text-align:center;margin-inline:auto}.lp-cta h2{color:var(--accent-on);margin-bottom:var(--space-4);font-size:clamp(28px,4vw,44px)}.lp-cta p{color:var(--accent-on)}@supports (color:color-mix(in lab, red, red)){.lp-cta p{color:color-mix(in oklch, var(--accent-on) 72%, transparent)}}.lp-cta p{font-size:var(--text-lg);max-width:48ch;margin-inline:auto}.lp-cta-actions{gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;justify-content:center;display:flex}.btn-invert{background:var(--bg);color:var(--fg);border-color:var(--bg);min-height:48px;font-size:var(--text-base);padding-inline:24px}.btn-invert:hover{background:var(--surface)}.btn-invert-ghost{color:var(--accent-on);border-color:var(--accent-on);background:0 0}@supports (color:color-mix(in lab, red, red)){.btn-invert-ghost{border-color:color-mix(in oklch, var(--accent-on) 40%, transparent)}}.btn-invert-ghost{min-height:48px;font-size:var(--text-base);padding-inline:24px}.btn-invert-ghost:hover{background:var(--accent-on)}@supports (color:color-mix(in lab, red, red)){.btn-invert-ghost:hover{background:color-mix(in oklch, var(--accent-on) 12%, transparent)}}.lp-footer{border-top:1px solid var(--border-soft);background:var(--bg);margin-top:auto}.lp-footer-inner{max-width:var(--container-max);padding:var(--space-12) var(--container-gutter-desktop) var(--space-8);gap:var(--space-8);grid-template-columns:1.6fr repeat(3,1fr);margin-inline:auto;display:grid}.lp-footer-brand{max-width:280px}.lp-footer-brand .lp-brand{margin-bottom:var(--space-4)}.lp-footer-brand p{font-size:var(--text-sm);color:var(--muted)}.lp-footer-col h4{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-4);font-weight:500}.lp-footer-col ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lp-footer-col a{font-size:var(--text-sm);color:var(--fg-2);transition:color var(--motion-fast)}.lp-footer-col a:hover{color:var(--fg)}.lp-footer-col a:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.lp-footer-bottom{max-width:var(--container-max);padding:var(--space-5) var(--container-gutter-desktop);border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-inline:auto;display:flex}.lp-footer-bottom .meta{font-size:var(--text-xs)}.lp-footer-legal{gap:var(--space-5);display:flex}.lp-footer-legal a{font-size:var(--text-xs);color:var(--muted)}.lp-footer-legal a:hover{color:var(--fg)}.legal-page{max-width:760px;padding:clamp(48px, 7vw, 88px) var(--container-gutter-desktop);width:100%;margin-inline:auto}.legal-page h1{margin-bottom:var(--space-3);font-size:clamp(32px,4.5vw,48px)}.legal-page .updated{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--muted);margin-bottom:var(--space-8)}.legal-callout{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-8)}.legal-prose h2{font-size:var(--text-xl);margin:var(--space-8) 0 var(--space-3)}.legal-prose p{color:var(--fg-2);margin-bottom:var(--space-4);line-height:1.6}.legal-prose ul{color:var(--fg-2);margin:0 0 var(--space-4);padding-left:var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.legal-prose a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.legal-toc{gap:var(--space-2);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}@media (width<=900px){.lp-hero{grid-template-columns:1fr}.lp-hero-media{order:-1}.lp-spotlight{grid-template-columns:1fr}.lp-spotlight.reverse .lp-spotlight-media{order:0}.lp-footer-inner{grid-template-columns:1fr 1fr}.lp-footer-brand{grid-column:1/-1;max-width:none}}@media (width<=760px){.lp-nav-links{display:none}.lp-section,.lp-nav-inner,.lp-sources-inner,.lp-cta-inner,.lp-footer-inner,.lp-footer-bottom,.legal-page{padding-inline:var(--container-gutter-phone)}}@media (width<=560px){.lp-nav-actions .lp-nav-signin{display:none}.lp-footer-inner{grid-template-columns:1fr}.lp-hero-cta .btn,.lp-cta-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.screen-card:hover,.feature-card:hover{transform:none}}.legal-prose table{border-collapse:collapse;width:100%;margin:0 0 var(--space-4);font-size:var(--text-sm)}.legal-prose th,.legal-prose td{border:1px solid var(--border);padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top;color:var(--fg-2)}.legal-prose thead th{background:var(--surface);color:var(--fg);font-weight:600}.legal-prose h3{font-size:var(--text-lg);margin:var(--space-6) 0 var(--space-2)}.legal-prose strong{color:var(--fg);font-weight:600}.legal-prose hr{border:none;border-top:1px solid var(--border-soft);margin:var(--space-8) 0}.legal-prose code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:1px 5px;font-size:.85em}
