@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}:root{color:#1c1b17;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1c1b17;--ink-soft:#5d5a50;--paper:#f7f3e9;--paper-deep:#e4dece;--red:#d64b38;--red-dark:#9f3023;--jade:#174f43;--line:#1c1b1724;--serif:"Iowan Old Style", "Palatino Linotype", "Noto Serif CJK SC", "Songti SC", Georgia, serif;background:#ebe6da;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html{scroll-behavior:smooth;scroll-padding-top:130px}body{background:radial-gradient(circle at 15% 0,#ffffffad,#0000 30rem),#ebe6da;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e97965}.app-shell{width:min(1240px,100% - 36px);margin:0 auto;padding:18px 0 52px}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f3e9e0;border:1px solid #1c1b171a;border-radius:18px;grid-template-columns:1fr auto 1fr;align-items:center;min-height:68px;margin-bottom:14px;padding:10px 14px;display:grid;position:sticky;top:12px;box-shadow:0 12px 40px #2d271c17}.brand{width:fit-content;color:var(--ink);font-family:var(--serif);letter-spacing:-.025em;align-items:center;gap:11px;font-size:1.08rem;font-weight:700;text-decoration:none;display:flex}.brand-mark{color:#fff9ef;background:var(--red);width:42px;height:42px;font-family:var(--serif);border-radius:50%;place-items:center;font-size:1.3rem;display:grid;box-shadow:inset 0 0 0 1px #ffffff3d}.topbar nav{align-items:center;gap:26px;display:flex}.topbar nav a{color:var(--ink-soft);font-size:.84rem;font-weight:650;text-decoration:none;transition:color .15s;position:relative}.topbar nav a:hover{color:var(--red)}.topbar nav a.active{color:var(--red);font-weight:750}.topbar nav a.active:after{content:"";background:var(--red);border-radius:2px;height:2px;position:absolute;bottom:-6px;left:0;right:0}.topbar-right{justify-self:end;align-items:center;gap:12px;display:flex}.api-pill{width:fit-content;color:var(--ink-soft);background:#1c1b170d;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.72rem;font-weight:700;display:flex}.api-pill span{background:#b29b62;border-radius:50%;width:7px;height:7px}.api-pill--available span{background:#2d886a;box-shadow:0 0 0 4px #2d886a1f}.api-pill--unavailable span{background:var(--red)}.header-account{align-items:center;display:flex}.header-account-link{border:1px solid var(--line);max-width:190px;color:var(--ink);background:#ffffffbf;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:.74rem;font-weight:650;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.header-account-link:hover{border-color:var(--ink);background:#fff}.header-account-icon{font-size:.8rem}.header-account-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-login-link{border:1px solid var(--ink);color:#fff;background:var(--ink);border-radius:999px;padding:7px 14px;font-size:.74rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s}.header-login-link:hover{background:var(--red);border-color:var(--red)}.header-account-loading{color:var(--ink-soft);font-size:.78rem;font-weight:700}.header-retry-btn{border:1px solid var(--red-dark);color:var(--red-dark);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-size:.72rem}.page-header{border:1px solid var(--line);background:var(--paper);border-radius:24px;margin:14px 0;padding:clamp(28px,4vw,44px) clamp(24px,4.5vw,56px)}.page-header h1{color:var(--ink);font-family:var(--serif);letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(2.2rem,4.4vw,3.8rem);font-weight:500;line-height:1.05}.page-header .intro{max-width:660px;color:var(--ink-soft);margin:0;font-size:clamp(.92rem,1.4vw,1.05rem);line-height:1.6}.hero{color:#f8f2e6;background:var(--ink);isolation:isolate;border-radius:28px;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);min-height:610px;display:grid;position:relative;overflow:hidden}.hero:before{z-index:-1;opacity:.24;content:"";background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 50%);mask-image:linear-gradient(90deg,#0000,#000 50%)}.hero:after{z-index:-1;content:"";background:radial-gradient(circle,#d64b3842,#0000 67%);border-radius:50%;width:640px;height:640px;position:absolute;top:-30%;right:-10%}.hero-copy{flex-direction:column;justify-content:center;max-width:760px;padding:clamp(42px,7vw,88px);animation:.5s both rise-in;display:flex}.eyebrow,.section-index{color:var(--red);letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px;font-size:.7rem;font-weight:850}.hero .eyebrow{color:#ed7d6b}h1{color:#fffaf2;max-width:690px;font-family:var(--serif);letter-spacing:-.072em;margin:0;font-size:clamp(3.6rem,7.4vw,7.2rem);font-weight:500;line-height:.91}h1 em{color:#ef7561;font-weight:inherit}.intro{color:#f8f2e6cc;max-width:570px;margin:30px 0 0;font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.7}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:38px;display:flex}.hero-actions a{font-size:.86rem;font-weight:750;text-decoration:none}.primary-link{color:#fff8eb;background:var(--red);border-radius:999px;padding:14px 18px}.primary-link:hover{background:#e45945}.quiet-link{color:#f8f2e6bd}.quiet-link span{color:#ef7561;margin-left:6px}.hero-glyph{border-left:1px solid #ffffff1a;align-content:center;justify-items:center;min-width:0;display:grid;position:relative}.hero-glyph:before,.hero-glyph:after{aspect-ratio:1;content:"";border:1px solid #ffffff21;border-radius:50%;width:min(27vw,330px);position:absolute}.hero-glyph:after{width:min(19vw,230px)}.hero-glyph strong{z-index:1;font-family:var(--serif);text-shadow:18px 22px #d64b381f;font-size:clamp(9rem,19vw,15rem);font-weight:400;line-height:1}.glyph-kicker{color:#f8f2e675;letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;font-weight:700;position:absolute;top:54px;right:48px}.glyph-caption{z-index:1;color:#f8f2e685;font-family:var(--serif);align-items:center;gap:14px;display:flex}.glyph-caption i{background:#f8f2e63d;width:44px;height:1px}.account-panel,.lookup,.learning-list,.text-analyzer,.image-uploads,.preview{border:1px solid var(--line);background:var(--paper);border-radius:24px;margin-top:14px}.account-panel{grid-template-columns:minmax(180px,.35fr) 1fr;align-items:center;gap:28px;padding:24px 28px;display:grid}.account-panel h2{font-family:var(--serif);margin:0;font-size:1.3rem;font-weight:600}.account-panel form>p:first-child,.account-summary p{color:var(--ink-soft);margin-top:0}.account-fields{flex-wrap:wrap;gap:12px;display:flex}.account-fields label{color:var(--ink-soft);flex:210px;gap:6px;font-size:.72rem;font-weight:750;display:grid}.account-fields input,.lookup-controls input,.text-analyzer textarea{width:100%;min-width:0;color:var(--ink);background:#fffdf7;border:1px solid #1c1b1730;border-radius:11px;outline:none}.account-fields input{padding:11px 12px}.account-fields input:focus,.lookup-controls input:focus,.text-analyzer textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #d64b381a}.account-actions,.account-summary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-authenticated{gap:16px;min-width:0;display:grid}.account-summary p{overflow-wrap:anywhere;flex:260px;margin-bottom:0}.account-panel button,.lookup button,.learning-actions button,.learning-list button,.text-analyzer button,.image-uploads button,.character-sources button{border:1px solid var(--ink);cursor:pointer;border-radius:999px;font-weight:750}.account-panel button{color:#fff;background:var(--ink);padding:10px 15px}.account-panel button[type=button]{color:var(--ink);background:0 0}.account-panel .account-delete-toggle{color:var(--red-dark);border-color:#9f302373}.delete-account{background:#d64b3812;border:1px solid #9f302347;border-radius:14px;gap:14px;padding:18px;display:grid}.delete-account strong{color:var(--red-dark);font-family:var(--serif);font-size:1.12rem}.delete-account p{color:var(--ink-soft);margin:5px 0 0;font-size:.8rem;line-height:1.5}.account-panel .account-delete-submit{color:#fff8f3;border-color:var(--red-dark);background:var(--red-dark);width:fit-content}.account-panel button:disabled,.lookup button:disabled,.learning-actions button:disabled,.learning-list button:disabled,.text-analyzer button:disabled,.image-uploads button:disabled{cursor:wait;opacity:.52}.account-help{color:var(--ink-soft);margin-bottom:10px;font-size:.76rem}.account-error,[role=alert]{color:var(--red-dark)}#lookup{scroll-margin-top:130px}.lookup{grid-template-columns:minmax(320px,.7fr) minmax(0,1.3fr);align-items:center;gap:clamp(36px,7vw,96px);min-height:520px;padding:clamp(34px,5vw,66px);display:grid}.not-found-page{margin-top:14px}.not-found-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:32px;display:flex}.not-found-actions a{font-size:.86rem;font-weight:750;text-decoration:none}.lookup h2,.text-analyzer h2,.image-uploads h2{font-family:var(--serif);letter-spacing:-.055em;margin:0 0 30px;font-size:clamp(2.4rem,4.5vw,4.8rem);font-weight:500;line-height:.98}.lookup-form label,.text-analyzer form label,.upload-controls label{color:var(--ink-soft);margin-bottom:8px;font-size:.72rem;font-weight:800;display:block}.lookup-controls{gap:9px;display:flex}.lookup-controls input{font-family:var(--serif);padding:13px 15px;font-size:1.2rem}.lookup-controls button{color:#fff;background:var(--ink);flex:none;padding:0 20px}.lookup-help,.lookup-result>p{color:var(--ink-soft);font-size:.78rem;line-height:1.5}.lookup-result{background:var(--paper-deep);border-radius:20px;min-height:370px;padding:clamp(20px,3vw,34px);box-shadow:inset 0 0 0 1px #1c1b170f}.lookup-result>p{text-align:center;place-items:center;min-height:300px;margin:0;display:grid}.empty-character{color:#1c1b171f;min-height:300px;font-family:var(--serif);place-items:center;font-size:9rem;display:grid}.character-card{grid-template-columns:138px 1fr;align-items:start;gap:28px;animation:.32s both rise-in;display:grid}.character-glyph{aspect-ratio:1;color:#fff8ec;background:var(--red);width:138px;font-family:var(--serif);border-radius:50%;place-items:center;font-size:5.3rem;display:grid;box-shadow:12px 14px #1c1b1712}.character-details{min-width:0}.character-card h3{font-family:var(--serif);margin:0;font-size:2.2rem;font-weight:500}.character-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0 0;display:grid}.character-card dl div{gap:4px;display:grid}.character-card dt,.character-meanings h4{color:#7a766a;letter-spacing:.12em;text-transform:uppercase;font-size:.64rem;font-weight:850}.character-card dd{overflow-wrap:anywhere;margin:0;font-size:.86rem;font-weight:700}.character-meanings,.character-learning{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.character-meanings h4,.character-learning h4{margin:0 0 8px}.character-meanings ol,.character-meanings p{color:var(--ink-soft);margin:0;padding-left:18px;font-size:.86rem;line-height:1.55}.character-meanings p{padding-left:0}.character-learning p{color:var(--ink-soft);margin:8px 0 0;font-size:.76rem}.learning-actions,.analysis-actions{flex-wrap:wrap;gap:7px;display:flex}.learning-actions button,.character-sources button{color:var(--ink);background:0 0;padding:7px 11px;font-size:.74rem}.learning-actions button[aria-pressed=true]{color:#fff;border-color:var(--jade);background:var(--jade)}.character-sources{overflow-wrap:anywhere;margin-top:20px;font-size:.78rem;line-height:1.55}.character-sources h4{margin:0}.character-sources details{margin:10px 0}.character-sources summary{cursor:pointer;font-weight:700}.learning-list,.text-analyzer,.image-uploads{grid-template-columns:minmax(250px,.55fr) 1fr;gap:clamp(28px,5vw,64px);padding:clamp(30px,4.5vw,54px);display:grid}.learning-list{background:#ded8c8}.learning-list h2{font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,3vw,3.2rem);font-weight:500}.learning-list>p{color:var(--ink-soft);margin:0}.learning-grid{grid-template-columns:repeat(auto-fill,minmax(102px,1fr));gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.learning-grid li{background:#f7f3e9d1;border-radius:12px;gap:4px;padding:13px;display:grid}.learning-grid span{font-family:var(--serif);font-size:2.2rem}.learning-grid strong{color:var(--ink-soft);font-size:.68rem}.learning-list button{color:var(--ink);background:0 0;padding:8px 13px}.text-analyzer{color:#f7f1e7;background:var(--jade)}.text-analyzer .section-index{color:#e9a68f}.text-analyzer-copy>p:last-child,.text-analyzer form>p{color:#f7f1e7a6;line-height:1.65}.text-analyzer form{gap:8px;display:grid}.text-analyzer form label{color:#f7f1e7b8}.text-analyzer textarea{resize:vertical;padding:14px;line-height:1.6}.text-analyzer textarea:disabled{opacity:.62}.text-analyzer-submit{justify-content:space-between;align-items:center;gap:12px;display:flex}.text-analyzer-submit span{color:#f7f1e785;font-size:.72rem}.text-analyzer button{color:#f7f1e7;background:0 0;border-color:#f7f1e799;padding:8px 13px}.text-analyzer-submit button,.analysis-actions button[aria-pressed=true]{color:var(--jade);background:#f7f1e7;border-color:#f7f1e7}.analysis-result{grid-column:1/-1}.analysis-result ul{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.analysis-result li{background:#f7f1e712;border:1px solid #f7f1e71f;border-radius:12px;gap:10px;padding:14px;display:grid}.analysis-result li>div:first-child{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.analysis-result li>div:first-child span{font-family:var(--serif);font-size:2.5rem}.analysis-result small,.analysis-result strong{color:#f7f1e794;font-size:.7rem}.analysis-known{box-shadow:inset 3px 0 #e9a68f}.analysis-unknown{box-shadow:inset 3px 0 #f7f1e740}.image-uploads{background:#f2d9d0}.image-uploads>div:first-child>p:last-child{color:var(--ink-soft);line-height:1.65}.upload-controls{gap:9px;display:grid}.upload-controls input{background:#fffdf7b3;border:1px dashed #1c1b174d;border-radius:11px;width:100%;padding:12px}.image-uploads button{color:#fff;background:var(--ink);width:fit-content;padding:9px 14px}.image-uploads ul{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.image-item{background:#fffdf7b8;border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.image-item-main{grid-template-columns:64px 1fr auto auto;align-items:center;gap:12px;width:100%;display:grid}.image-item-actions{align-items:center;gap:6px;display:flex}.image-item-main img,.image-placeholder{object-fit:cover;background:#d0c5b5;border-radius:9px;width:64px;height:64px}.image-uploads time{color:var(--ink-soft);font-size:.72rem}.image-item-actions button{padding:7px 11px}.image-item-actions button:last-child{color:var(--red-dark);border-color:var(--red-dark);background:0 0}.ocr-toggle-button{color:#fff!important;background:var(--ink)!important;border-color:var(--ink)!important}.ocr-workbench{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-top:6px;padding:16px;animation:.2s ease-out rise-in}.ocr-workbench-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.ocr-workbench-header h3{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:600}.ocr-meta{color:var(--ink-soft);margin:4px 0 0;font-size:.8rem}.ocr-close-button{font-size:.75rem;color:var(--ink-soft)!important;border-color:var(--line)!important;background:0 0!important;padding:4px 10px!important}.ocr-content-grid{grid-template-columns:minmax(180px,300px) 1fr;align-items:start;gap:16px;display:grid}.ocr-image-stage{border:1px solid var(--line);background:#1c1b17;border-radius:8px;justify-content:center;align-items:center;width:100%;max-height:380px;display:flex;position:relative;overflow:hidden}.ocr-image-wrapper{max-width:100%;max-height:380px;line-height:0;display:inline-block;position:relative}.ocr-base-image{width:auto;max-width:100%;height:auto;max-height:380px;display:block}.ocr-feedback{color:#1e7e34;margin:0;font-size:.8rem;font-weight:500}.ocr-bounding-box{border:2px solid var(--red);pointer-events:auto;background:#d64b382e;border-radius:3px;transition:all .15s;position:absolute}.ocr-bounding-box:hover{border-color:var(--red-dark);z-index:10;background:#d64b3866}.ocr-box-label{color:#fff;background:var(--red-dark);white-space:nowrap;pointer-events:none;border-radius:3px;padding:1px 4px;font-size:.65rem;font-weight:700;position:absolute;top:-18px;left:0}.ocr-editor-panel{flex-direction:column;gap:8px;display:flex}.ocr-editor-panel label{color:var(--ink);font-size:.82rem;font-weight:600}.ocr-editor-panel textarea{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:8px;width:100%;padding:10px;font-size:1.1rem;line-height:1.5}.ocr-hint{color:var(--ink-soft);margin:0;font-size:.75rem;line-height:1.4}.ocr-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.ocr-primary-action{font-size:.85rem;color:#fff!important;background:var(--jade)!important;border-color:var(--jade)!important;padding:9px 16px!important}.ocr-secondary-action{font-size:.82rem;color:var(--ink)!important;border-color:var(--line)!important;background:0 0!important;padding:8px 12px!important}.ocr-status{color:var(--ink-soft);margin:8px 0;font-size:.85rem}.ocr-error{color:var(--red-dark);align-items:center;gap:12px;font-size:.85rem;display:flex}.catalog-page{border:1px solid var(--line);background:var(--paper);border-radius:24px;overflow:hidden}.catalog-intro{color:#f8f2e6;background:radial-gradient(circle at 86% 10%, #e3c4783d, transparent 24rem), var(--jade);padding:clamp(34px,6vw,76px)}.catalog-intro .section-index{color:#e7b991}.catalog-intro h1{max-width:850px;font-family:var(--serif);margin:18px 0 22px;font-size:clamp(2.9rem,6vw,5.7rem);font-weight:500;line-height:1.05}.catalog-intro h1 em{color:#f0b894;font-style:normal}.catalog-intro>p:last-child{color:#f8f2e6bf;max-width:570px;margin:0;line-height:1.65}.catalog-content{padding:clamp(22px,4vw,48px)}.catalog-meta{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.catalog-meta p{color:var(--ink-soft);margin:0;font-size:.86rem;font-weight:650}.catalog-pagination{gap:8px;display:flex}.catalog-pagination button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:9px 13px;font-size:.78rem;font-weight:750}.catalog-pagination button:hover:not(:disabled){border-color:var(--red);color:var(--red-dark)}.catalog-pagination button:disabled{opacity:.45;cursor:not-allowed}.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.catalog-tile{border:1px solid var(--line);min-height:214px;color:var(--ink);text-align:left;cursor:pointer;background:#fffdf7;border-radius:17px;flex-direction:column;align-items:flex-start;padding:18px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.catalog-tile:hover,.catalog-tile[aria-pressed=true]{border-color:var(--red);transform:translateY(-2px);box-shadow:0 8px 25px #2d271c17}.catalog-tile-rank{color:var(--red-dark);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem;font-weight:800}.catalog-tile-glyph{font-family:var(--serif);margin:9px 0 4px;font-size:3.2rem;line-height:1}.catalog-tile-reading{font-size:.86rem;font-weight:750}.catalog-tile-meaning{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:.78rem;line-height:1.45;display:-webkit-box;overflow:hidden}.catalog-selection:not(:empty){border-top:1px solid var(--line);background:#fffdf7;padding:clamp(22px,4vw,48px)}.catalog-selection>p{color:var(--ink-soft);margin:0}.graph-auth,.graph-layout{margin-top:18px}.graph-auth{color:#f7f3e9;background:var(--jade);border-radius:24px;padding:clamp(32px,6vw,72px)}.graph-auth>span{font-family:var(--serif);letter-spacing:.18em;color:#f0b894;font-size:2.5rem}.graph-auth h2,.graph-composer h2,.graph-explorer h2{font-family:var(--serif);margin:14px 0;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500}.graph-auth p{color:#f7f3e9bf;max-width:520px;line-height:1.6}.graph-auth a{color:var(--ink);background:#f0b894;border-radius:999px;margin-top:12px;padding:12px 18px;font-weight:750;text-decoration:none;display:inline-block}.graph-layout{grid-template-columns:minmax(275px,.72fr) minmax(0,1.28fr);align-items:start;gap:14px;display:grid}.graph-composer,.graph-explorer,.graph-list{border:1px solid var(--line);background:var(--paper);border-radius:24px;padding:clamp(22px,3vw,38px)}.graph-composer form{gap:14px;margin-top:26px;display:grid}.graph-composer label,.graph-explorer-heading label{color:var(--ink-soft);gap:8px;font-size:.8rem;font-weight:750;display:grid}.graph-character-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.graph-composer input,.graph-composer textarea,.graph-explorer select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf7;border-radius:11px;padding:12px}.graph-composer input{font-family:var(--serif);text-align:center;font-size:2rem;line-height:1}.graph-composer textarea{resize:vertical;line-height:1.5}.graph-counter,.graph-composer-hint{color:var(--ink-soft);margin:0;font-size:.78rem;line-height:1.55}.graph-composer form>button{color:#fff;background:var(--red);cursor:pointer;border:0;border-radius:999px;padding:13px 20px;font-weight:750}.graph-composer form>button:disabled,.graph-list button:disabled{opacity:.5;cursor:not-allowed}.graph-message{color:var(--red-dark);margin:0;font-size:.83rem;line-height:1.5}.graph-composer-hint{margin-top:20px}.graph-composer-hint a{color:var(--red-dark)}.graph-explorer-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.graph-explorer-heading h2{max-width:440px}.graph-explorer-heading select{min-width:90px;font-family:var(--serif);font-size:1.2rem}.graph-neighborhood{gap:20px;margin-top:26px;display:grid}.graph-center{color:#fffdf7;background:var(--jade);border-radius:100px;align-items:center;gap:16px;width:fit-content;padding:12px 22px;display:flex}.graph-center span{font-size:.74rem;font-weight:700}.graph-center strong{font-family:var(--serif);font-size:2.5rem;font-weight:500;line-height:1}.graph-level{border-left:2px solid var(--paper-deep);padding-left:20px}.graph-level h3{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:.77rem}.graph-level-nodes{flex-wrap:wrap;gap:10px;display:flex}.graph-level-nodes button{border:1px solid var(--line);min-width:90px;color:var(--ink);cursor:pointer;background:#fffdf7;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex}.graph-level-nodes button:hover{border-color:var(--red)}.graph-level-nodes strong{font-family:var(--serif);font-size:1.9rem;font-weight:500}.graph-level-nodes span,.graph-level-nodes p{color:var(--ink-soft);font-size:.75rem}.graph-empty{text-align:center;place-content:center;min-height:260px;padding:20px;display:grid}.graph-empty span{color:var(--red);font-family:var(--serif);font-size:3rem}.graph-empty p{max-width:290px;color:var(--ink-soft);line-height:1.6}.graph-list{grid-column:1/-1}.graph-list h2{font-family:var(--serif);margin:0 0 20px;font-size:1.8rem;font-weight:500}.graph-list h2 span{color:var(--red);vertical-align:middle;font-family:Inter,sans-serif;font-size:.85rem}.graph-list ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.graph-list li{border:1px solid var(--line);background:#fffdf7;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:12px 16px;display:grid}.graph-pair{white-space:nowrap;font-family:var(--serif);font-size:1.5rem}.graph-pair i{color:var(--red);margin:0 7px;font-family:Inter,sans-serif;font-size:.9rem;font-style:normal}.graph-list li p{overflow-wrap:anywhere;min-width:0;color:var(--ink-soft);margin:0;font-size:.83rem}.graph-list button{border:1px solid var(--line);color:var(--red-dark);cursor:pointer;background:0 0;border-radius:999px;padding:7px 12px}.preview{background:var(--ink);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.preview article{color:#f8f2e6;border-right:1px solid #ffffff1a;min-height:230px;padding:clamp(26px,4vw,46px)}.preview article:last-child{border-right:0}.preview span{color:#ed7d6b;letter-spacing:.18em;font-size:.65rem;font-weight:850}.preview h2{font-family:var(--serif);margin:58px 0 12px;font-size:1.7rem;font-weight:500}.preview p{color:#f8f2e694;margin:0;font-size:.86rem;line-height:1.6}footer{color:var(--ink-soft);justify-content:space-between;align-items:center;padding:38px 10px 0;display:flex}footer span{color:var(--ink);font-family:var(--serif);letter-spacing:.16em;font-size:1.35rem}footer p{margin:0;font-size:.75rem}@media (width<=900px){.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar nav{border-top:1px solid var(--line);order:3;justify-content:space-around;gap:16px;width:100%;padding-top:10px}.hero{grid-template-columns:1fr .65fr}.hero-copy{padding:52px 40px}.account-panel,.lookup,.learning-list,.text-analyzer,.image-uploads,.graph-layout{grid-template-columns:1fr}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=680px){.app-shell{width:min(100% - 20px,1240px);padding-top:10px}.topbar{border-radius:15px;min-height:60px;top:6px}.brand-mark{width:38px;height:38px}.topbar nav{grid-template-columns:repeat(3,1fr);justify-items:center;gap:10px 8px;display:grid}.topbar nav a{font-size:.78rem}.header-account-link{max-width:130px;font-size:.7rem}.api-pill{padding:6px 10px;font-size:0}.hero{grid-template-columns:1fr;min-height:640px}.hero-copy{justify-content:flex-start;padding:56px 28px 24px}h1{font-size:clamp(3.55rem,17vw,5.4rem)}.hero-glyph{border-top:1px solid #ffffff1a;border-left:0;min-height:230px}.hero-glyph strong{font-size:8.5rem}.hero-glyph:before{width:210px}.hero-glyph:after{width:150px}.glyph-kicker{top:22px;right:24px}.account-panel,.lookup,.learning-list,.text-analyzer,.image-uploads{border-radius:18px}.lookup{min-height:auto;padding:34px 24px}.lookup h2,.text-analyzer h2,.image-uploads h2{font-size:2.65rem}.preview{border-radius:18px;grid-template-columns:1fr}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-meta{flex-direction:column;align-items:flex-start}.preview article{border-bottom:1px solid #ffffff1a;border-right:0;min-height:180px}.preview h2{margin-top:35px}footer{flex-direction:column;align-items:flex-start;gap:12px}}@media (width<=430px){.hero-actions{flex-direction:column;align-items:flex-start}.lookup-controls{flex-direction:column;align-items:stretch}.lookup-controls button{min-height:46px}.character-card{grid-template-columns:1fr}.character-glyph{aspect-ratio:2;border-radius:16px;width:100%}.character-details{width:100%}.image-item-main{grid-template-columns:58px 1fr auto}.image-item-main img,.image-placeholder{width:58px;height:58px}.image-item-main time{grid-area:2/2/auto/-1}.ocr-content-grid{grid-template-columns:1fr}.catalog-tile{min-height:190px;padding:14px}.catalog-tile-glyph{font-size:2.8rem}.graph-explorer-heading{flex-direction:column}.graph-list li{grid-template-columns:1fr auto}.graph-list li p{grid-area:2/1/auto/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation:none!important}}
