:root{--forest:#173c36;--forest2:#28584b;--forest3:#3d6d57;--sand:#f8f5ec;--paper:#fffdf8;--ink:#203c35;--sub:#6b766f;--line:#e4e5da;--gold:#aa8552;--red:#ac4b41;--light-green:#e7efe6;--shadow:0 12px 40px rgba(23,60,54,.08);font-family:Arial,"Helvetica Neue",sans-serif;color:var(--ink);background:var(--sand)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.52;cursor:not-allowed}a{color:inherit} [hidden]{display:none!important} ::selection{background:#d6e7d3;color:var(--forest)}
.app-layout{display:grid;grid-template-columns:minmax(345px,41%) minmax(0,1fr);min-height:100vh}
.heritage-panel{background:var(--forest);color:#fff;position:sticky;top:0;align-self:start;height:100vh;min-height:720px;overflow:hidden;display:flex;flex-direction:column}
.heritage-panel:before{content:"";inset:0;position:absolute;opacity:.12;background:repeating-linear-gradient(45deg,transparent 0px,transparent 32px,rgba(255,255,255,.08) 32px,rgba(255,255,255,.08) 33px);pointer-events:none}
.brand{position:relative;z-index:2;display:flex;align-items:center;gap:12px;padding:40px 48px 14px;font-size:19px;font-weight:800;letter-spacing:.15em}.brand-mark{font-size:26px;color:#e6ca8e}.brand-line{height:1px;background:#78978a;flex:1;max-width:90px;margin:0 4px}.brand-minor{font-size:10px;letter-spacing:.2em;font-weight:600;color:#c2cfbd}
.hero-copy{position:relative;z-index:2;padding:78px 48px 24px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.eyebrow-light{color:#c3d4c3}.ornament{font-size:10px;margin:0 5px;color:#d5b57d}.hero-copy h1,.welcome h2,.recording-head h2{font:normal 70px/1.07 Georgia,"Times New Roman",serif;letter-spacing:-.046em;margin:24px 0}.hero-copy h1 em,.welcome h2 em,.recording-head h2 em{font-weight:400;color:#dcb985}.hero-copy p{font-size:16px;line-height:1.85;max-width:350px;color:#d2dfd6}.tower-visual{position:relative;flex:1;min-height:270px;background-image:linear-gradient(180deg,var(--forest) 0%,transparent 12%),url('/static/img/towers.svg');background-position:bottom center;background-repeat:no-repeat;background-size:cover}.tower-visual:after{content:"";position:absolute;inset:auto 0 0;height:40px;background:linear-gradient(transparent,rgba(8,39,34,.6))}.hero-footer{position:relative;z-index:2;padding:18px 48px 34px;display:flex;justify-content:space-between;gap:15px;align-items:center;color:#c9d6c9;border-top:1px solid rgba(255,255,255,.13);font-size:11px;letter-spacing:.03em}.hero-footer span:first-child{font:italic 23px Georgia,serif;color:#e4cfac}
.workspace{min-width:0;padding:0 clamp(22px,5vw,84px) 60px}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:98px;border-bottom:1px solid var(--line);gap:14px}.topbar-label{font-size:10px;font-weight:800;color:var(--forest2);letter-spacing:.15em}.tiny-diamond{display:inline-block;width:8px;height:8px;background:var(--gold);transform:rotate(45deg);margin-right:10px}.admin-link{text-decoration:none;font-size:12px;white-space:nowrap;color:var(--sub)}.admin-link:hover{text-decoration:underline}
.welcome{max-width:740px;margin:70px auto 30px}.section-stamp{color:var(--gold);letter-spacing:.18em;font-size:11px;font-weight:800}.welcome h2,.recording-head h2{font-size:clamp(39px,4.2vw,61px);margin:15px 0 16px}.welcome h2 em,.recording-head h2 em{color:var(--forest3)}.lead{max-width:610px;font-size:16px;line-height:1.85;color:#64756b;margin:0 0 34px}.three-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:34px 0}.three-steps>div{border-top:1px solid #cdd5c9;padding-top:16px;display:grid;gap:7px}.step-icon{font:italic 28px Georgia,serif;color:var(--gold)}.three-steps strong{font-size:13px}.three-steps small{font-size:11px;color:#728079}
.consent-card{border:1px solid #e2e2d7;background:var(--paper);box-shadow:var(--shadow);padding:30px 32px;border-radius:15px}.consent-card h3{font:normal 26px Georgia,serif;margin:0 0 10px}.consent-card p{font-size:13px;color:#687970;line-height:1.75;margin:0 0 21px}.checkline{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5;margin:14px 0;cursor:pointer}.checkline input{width:18px;height:18px;accent-color:var(--forest3);flex:0 0 18px;margin-top:1px}.btn{border:0;border-radius:9px;padding:13px 20px;font-weight:700;font-size:13px;transition:transform .16s,background .16s,color .16s;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px}.btn:not(:disabled):active{transform:scale(.98)}.btn-primary{color:white;background:var(--forest)}.btn-primary:hover{background:#285b4d}.consent-card .btn{width:100%;margin-top:16px}.btn-secondary{background:#edf0e8;color:var(--forest)}.btn-secondary:hover{background:#dee8dc}.btn-ghost{background:transparent;border:1px solid #e1e7df;color:var(--sub)}.btn-ghost:hover{background:#f4f1ed}.error-text{font-size:12px;color:var(--red);min-height:1em;line-height:1.5}.resume-line{text-align:center;font-size:13px;color:var(--sub);margin:25px 0}.inline-link,.subtle-link{border:0;background:none;padding:0;color:var(--forest3);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;font-size:inherit}.inline-link:hover{text-decoration-thickness:2px}.resume-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.resume-box label{font-size:13px;font-weight:700;display:block;margin-bottom:11px}.resume-inputs{display:flex;gap:8px}.resume-inputs input{flex:1;min-width:0;border:1px solid #cfd8ce;border-radius:8px;padding:11px 12px;font-size:13px}
#recorder-screen{max-width:850px;margin:48px auto 0}.recording-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.recording-head h2{font-size:clamp(37px,3.5vw,54px)}.speaker-box{display:grid;text-align:right;gap:6px}.speaker-box span{font-size:10px;letter-spacing:.13em;color:var(--sub)}.speaker-box strong{font-size:14px;letter-spacing:.08em}.speaker-box button{font-size:11px;font-weight:500;text-decoration:none}.progress-header{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;margin:19px 0 9px}.progress-header strong{font-size:15px}.progress-header span{color:var(--sub)}#progress-percent{font-weight:800;color:var(--forest3)}.progress-track{height:8px;background:#e1e7df;border-radius:99px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#668f71,#1e5b48);transition:width .4s}
.record-card{position:relative;background:#fffdf8;border:1px solid #e3e4d9;border-radius:18px;box-shadow:var(--shadow);padding:30px clamp(18px,3.7vw,42px);margin-top:30px;min-height:360px;overflow:hidden}.record-card:before,.record-card:after{content:"";position:absolute;height:24px;width:24px;opacity:.5;border:1px solid #b59e73}.record-card:before{top:13px;left:13px;border-right:0;border-bottom:0}.record-card:after{bottom:13px;right:13px;border-left:0;border-top:0}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.sentence-id{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--gold)}.tag{background:#f0eee6;color:#8e8068;border-radius:4px;font-size:10px;padding:8px 10px;letter-spacing:.08em;font-weight:800}.tag.is-done{color:#236044;background:#e3ede3}.tag.is-rejected{color:#a24b3d;background:#f9e8e3}.corner-symbol{text-align:center;margin:20px 0 10px;color:#bea675;font-size:24px}.sentence-text{margin:10px 0 17px;text-align:center;font:normal clamp(24px,2.7vw,36px)/1.45 Georgia,"Times New Roman",serif;color:var(--forest);min-height:65px;overflow-wrap:anywhere}.sentence-hint{text-align:center;color:#859089;font-size:12px;line-height:1.6;min-height:21px;margin:0 auto 12px;max-width:520px}.visualizer{display:flex;justify-content:center;align-items:center;gap:4px;height:52px;margin:18px auto 18px;opacity:.55}.visualizer span{display:block;width:4px;border-radius:3px;background:#789784;height:10px}.visualizer span:nth-child(3n){height:18px}.visualizer span:nth-child(4n){height:28px}.visualizer span:nth-child(7n){height:39px}.visualizer.is-recording{opacity:1}.visualizer.is-recording span{background:#bc6656;animation:voice 700ms ease-in-out infinite alternate;animation-delay:calc(var(--n, 1)*-70ms)}.visualizer.is-recording span:nth-child(2n){animation-duration:450ms}.visualizer.is-recording span:nth-child(3n){animation-duration:900ms}@keyframes voice{from{height:5px}to{height:39px}}.record-controls{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap}.btn-record{background:var(--forest);color:#fff;min-width:185px}.btn-record:hover{background:#28634f}.record-dot{display:block;width:10px;height:10px;background:#ec735f;border-radius:99px}.btn-stop{background:#ad5048;color:#fff;min-width:185px}.btn-stop:hover{background:#94382f}.timer{font-variant-numeric:tabular-nums;letter-spacing:.15em;font-weight:700;font-size:15px;color:#627368}.audio-preview{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.preview-top{display:flex;justify-content:space-between;gap:10px;font-weight:800;font-size:10px;letter-spacing:.09em;color:#6d7e71}.audio-preview audio{display:block;width:100%;margin:13px 0}.preview-actions{display:flex;gap:9px;flex-wrap:wrap}.preview-actions .btn{flex:1}.app-message{text-align:center;min-height:14px;font-size:12px;color:var(--forest3);line-height:1.5;margin:12px 0 0}.app-message.is-error{color:var(--red)}
.navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 39px}.nav-btn{background:none;border:0;color:var(--forest);font-size:13px;font-weight:800;padding:6px 0}.navigation-description{color:#98a29a;font-size:11px;max-width:260px;text-align:center;line-height:1.5}.sentence-map-wrap{border-top:1px solid var(--line);padding-top:26px}.sentence-map-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 23px}.sentence-map-header h3{font:normal 29px Georgia,serif;margin:8px 0 0}.legend{display:flex;gap:12px;font-size:11px;color:var(--sub)}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%}.legend-done{background:#61896f}.legend-pending{background:#d7dacf}.sentence-map{display:grid;grid-template-columns:repeat(10, minmax(0,1fr));gap:9px}.sentence-map button{aspect-ratio:1.12;border:1px solid #dfe5db;border-radius:7px;background:#f6f7f1;color:#516c5d;font-size:12px;font-weight:700}.sentence-map button:hover{border-color:var(--forest3)}.sentence-map button.is-done{background:#dae8da;color:#21513e;border-color:#dae8da}.sentence-map button.is-current{background:var(--forest);color:#fff;border-color:var(--forest);box-shadow:0 4px 16px rgba(23,60,54,.17)}.sentence-map button.is-disabled{background:#f0eae3;color:#ab9180;text-decoration:line-through;cursor:not-allowed}.footnote{margin-top:13px;color:#8d928a;font-size:11px;line-height:1.5}.privacy-foot{margin-top:38px;padding-top:20px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);color:#849189;font-size:11px;line-height:1.5}.privacy-foot button{font-size:11px;flex-shrink:0}.danger{color:#a54840}
.modal-backdrop{position:fixed;inset:0;background:rgba(11,38,32,.67);display:flex;align-items:center;justify-content:center;padding:18px;z-index:999}.modal{background:#fffdf8;border-radius:16px;max-width:490px;width:100%;padding:30px;box-shadow:0 22px 60px #0d292966}.modal h3{font:normal 32px Georgia,serif;margin:12px 0}.modal p{font-size:13px;color:var(--sub);line-height:1.75}.key-string{background:#edf1e8;word-break:break-all;border:1px dashed #a3b9a6;padding:15px;border-radius:8px;line-height:1.5;font:13px/1.6 monospace}.modal-actions{display:flex;gap:8px;margin-top:20px}.modal-actions button{flex:1}
/* Admin */
.admin-body{min-height:100vh;background:var(--sand)}.admin-top{background:var(--forest);color:#fff;padding:26px clamp(20px,5vw,80px);display:flex;justify-content:space-between;align-items:center;gap:15px}.admin-top strong{font-size:19px;letter-spacing:.13em}.admin-top a{color:#dfebdf;text-decoration:none;font-size:13px}.admin-content{max-width:1120px;padding:30px 18px 70px;margin:0 auto}.admin-content h1{font:normal 45px Georgia,serif;margin:12px 0 24px}.admin-login{max-width:480px;background:#fff;padding:30px;border:1px solid var(--line);border-radius:14px}.admin-login label{display:block;font-size:13px;font-weight:700;margin:0 0 9px}.admin-login input{width:100%;padding:13px;border:1px solid #cfdbd0;border-radius:8px;margin-bottom:13px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.stat-card small{color:var(--sub);font-size:11px}.stat-card strong{display:block;font:normal 32px Georgia,serif;margin-top:10px}.admin-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:27px 0 15px;flex-wrap:wrap}.admin-actions select{background:white;padding:12px 16px;border:1px solid #d4ddd3;border-radius:8px;color:var(--forest)}.record-list{display:grid;gap:12px}.review-row{background:#fff;border:1px solid #e0e5da;border-radius:12px;padding:20px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}.review-row h3{margin:0 0 7px;font:normal 22px Georgia,serif;overflow-wrap:anywhere}.review-meta{font-size:11px;color:var(--sub);margin:0 0 9px}.review-row audio{width:100%;max-width:500px;height:39px}.review-row .review-buttons{display:flex;gap:7px;flex-wrap:wrap}.review-row .review-buttons button{padding:11px;font-size:11px}.approved-button{color:#fff;background:#24724e}.rejected-button{background:#a44e42;color:#fff}.review-empty{background:#fff;border:1px solid var(--line);border-radius:12px;padding:38px;color:var(--sub);text-align:center}.page-controls{display:flex;gap:15px;align-items:center;justify-content:center;margin-top:20px}.page-controls button{background:white;border:1px solid var(--line);border-radius:7px;padding:10px 15px}
@media(max-width:1180px){.app-layout{grid-template-columns:minmax(295px,35%) minmax(0,1fr)}.brand{padding:30px 28px 12px}.hero-copy{padding:70px 28px 20px}.hero-copy h1{font-size:55px}.hero-footer{padding:20px 28px 28px}.workspace{padding:0 28px 60px}.sentence-map{gap:6px}}
@media(max-width:850px){.app-layout{display:block}.heritage-panel{height:340px;min-height:0;position:relative}.brand{padding:22px 25px;font-size:16px}.hero-copy{padding:24px 25px 0}.hero-copy h1{font-size:46px;margin:12px 0 10px}.hero-copy p{max-width:270px;font-size:12px;line-height:1.55}.eyebrow-light{font-size:9px}.tower-visual{position:absolute;right:0;bottom:0;top:70px;width:57%;background-size:cover;opacity:.72}.hero-copy{max-width:65%}.hero-footer{position:absolute;bottom:0;left:0;right:0;padding:12px 25px}.hero-footer span:last-child{font-size:10px}.workspace{padding:0 25px 50px}.topbar{min-height:66px}.welcome{margin:40px auto 25px}#recorder-screen{margin:35px auto 0}.sentence-map{grid-template-columns:repeat(10,minmax(0,1fr))}}
@media(max-width:540px){.heritage-panel{height:305px}.brand{padding:18px 18px 12px;font-size:15px}.brand-minor{font-size:8px}.brand-line{max-width:25px}.hero-copy{padding:23px 18px 0;max-width:77%}.hero-copy h1{font-size:42px}.hero-copy p{font-size:11px;max-width:235px}.tower-visual{width:72%;opacity:.42}.hero-footer{padding:9px 18px}.hero-footer span:last-child{font-size:9px}.workspace{padding:0 17px 46px}.topbar{min-height:62px}.topbar-label{font-size:9px;letter-spacing:.09em}.admin-link{font-size:10px}.welcome{margin:32px 0}.welcome h2{font-size:42px}.lead{font-size:14px;line-height:1.7}.three-steps{gap:6px;margin:27px 0}.three-steps strong{font-size:11px}.three-steps small{font-size:10px}.step-icon{font-size:24px}.consent-card{padding:22px 17px}.consent-card h3{font-size:24px}.resume-inputs{flex-direction:column}.recording-head{align-items:start}.recording-head h2{font-size:36px}.speaker-box{padding-top:6px}.speaker-box strong{font-size:11px}.speaker-box span{font-size:8px}.record-card{padding:26px 19px}.sentence-text{font-size:26px}.tag{font-size:9px;padding:7px}.card-top{align-items:start}.sentence-id{font-size:10px}.preview-actions .btn{flex-basis:100%}.navigation-description{display:none}.sentence-map{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.sentence-map-header{align-items:start}.legend{flex-direction:column}.privacy-foot{flex-direction:column}.review-row{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-content h1{font-size:35px}.modal{padding:22px}.modal-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
