:root{--page-edge-top:#ffd7df;--page-edge-bottom:#f9efe8;--viewport-background:linear-gradient(180deg, var(--page-edge-top) 0%, #ffe5e7 42%, var(--page-edge-bottom) 100%);--page-background:radial-gradient(circle at top left, #ffbecabf, transparent 36rem), linear-gradient(180deg, #fff3f0 0%, #fffaf6 45%, #f9efe8 100%);color:#241b1b;background:var(--page-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background-color:var(--page-edge-top);background:var(--page-edge-top);min-height:100%}*{box-sizing:border-box}body{background-color:var(--page-edge-top);background:var(--viewport-background);overscroll-behavior-y:none;min-width:320px;min-height:100dvh;margin:0;position:relative}body:before{z-index:-1;background:var(--page-background);content:"";position:fixed;inset:0}#root{background-color:var(--page-edge-top);background:var(--viewport-background);isolation:isolate;min-height:100dvh;position:relative}#root:before,#root:after{z-index:-1;pointer-events:none;content:"";position:fixed;left:0;right:0}#root:before{z-index:2147483647;height:env(safe-area-inset-top);background:var(--page-edge-top);top:0}#root:after{height:env(safe-area-inset-bottom);background:var(--page-edge-bottom);bottom:0}button,input,textarea,select{font:inherit}button,a.small-link,.header-links a,.footer-note a{color:#4e3030;cursor:pointer;background:#fff;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.72rem 1rem;text-decoration:none;display:inline-flex;box-shadow:0 10px 25px #5c3a3a1f}button:active,a:active{transform:translateY(1px)}.primary-button{color:#fff;background:linear-gradient(135deg,#ed6f86,#f7a066);font-weight:750}.heart-loader{z-index:2147483646;background:var(--viewport-background);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.heart-loader-leaving{animation:3.1s forwards heart-loader-release}.daily-heart{color:#ed6f86;text-shadow:0 18px 42px #a0324e47;font-size:clamp(38rem,150vmax,92rem);line-height:1;animation:1.5s ease-in-out infinite heart-loader-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(1)}.heart-loader-leaving .daily-heart{animation:3.1s cubic-bezier(.18,.88,.22,1) forwards daily-heart-like}.confetti-layer{z-index:2147483645;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{background:var(--confetti-color);opacity:0;width:.48rem;height:.9rem;animation:2.35s ease-out forwards confetti-burst;animation-delay:var(--confetti-delay);border-radius:.18rem;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)scale(.2)rotate(0)}.confetti-piece:nth-child(3n){border-radius:999px}.confetti-piece:nth-child(4n){width:.7rem;height:.35rem}@keyframes heart-loader-pulse{0%,to{transform:translate(-50%,-50%)scale(1)rotate(-4deg)}50%{transform:translate(-50%,-50%)scale(.96)rotate(3deg)}}@keyframes heart-loader-release{0%,48%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes daily-heart-like{0%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-8deg)}42%{opacity:1;transform:translate(-50%,-50%)scale(.18)rotate(0)}64%{opacity:1;transform:translate(calc(18vw - 50%),calc(-50% - 6vh))scale(.12)rotate(10deg)}to{opacity:0;transform:translate(calc(56vw - 50%),calc(-50% - 18vh))scale(.04)rotate(24deg)}}@keyframes confetti-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}12%{opacity:1}42%{opacity:1;transform:translate(calc(-50% + var(--confetti-mid-x)), calc(-50% + var(--confetti-mid-y))) scale(1) rotate(var(--confetti-mid-rotate))}to{opacity:0;transform:translate(calc(-50% + var(--confetti-x)), calc(-50% + var(--confetti-y))) scale(.92) rotate(var(--confetti-fall-rotate))}}.app-shell{width:min(100%,520px);min-height:100dvh;padding:max(1.1rem, env(safe-area-inset-top)) 1rem max(2rem, calc(env(safe-area-inset-bottom) + 2rem));background:var(--page-background);margin:0 auto}.hero{padding:1.25rem 0 1rem}.eyebrow{color:#a24c5f;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem;font-weight:850}h1,h2{margin:0;line-height:1.02}h1{letter-spacing:-.07em;font-size:clamp(2.35rem,10vw,4rem)}h2{letter-spacing:-.04em;font-size:clamp(1.45rem,5.5vw,2rem)}p{line-height:1.55}.hero p:not(.eyebrow),.today-card p,.editor-header p,.preview-header p{color:#6e5555}.today-card,.puzzle-card,.editor-panel,.editor-preview,.device-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc7;border:1px solid #6e414117;border-radius:28px;box-shadow:0 24px 80px #6e41411f}.today-card{justify-content:space-between;align-items:flex-start;gap:1rem;margin:0 0 1rem;padding:1.1rem;display:flex}.today-card p{margin-bottom:0}.puzzle-card{padding:.85rem;overflow:hidden}.puzzle-meta,.footer-note,.device-card-header,.header-links,.preview-switcher,.progress-device-card header,.progress-puzzle-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.puzzle-meta{color:#6d5757;margin:0 0 .75rem;font-size:.9rem}.pill{color:#8f3f52;background:#ffe2e6;border-radius:999px;padding:.35rem .7rem;font-weight:800}.mode-toggle{min-height:36px;box-shadow:none;color:#8f3f52;white-space:nowrap;background:#fff7f8;border:1px solid #a24c5f2e;padding:.45rem .7rem;font-size:.82rem;font-weight:850}.mode-toggle[aria-pressed=true]{background:#ffe2e6}.scan-stage{background:#f3e8df;border-radius:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #4c373714}.scan-image{object-fit:contain;width:100%;min-height:420px;display:block}.scan-placeholder{color:#806363;text-align:center;background:linear-gradient(#ffffffbd,#ffffffbd),repeating-linear-gradient(0deg,#0000 0 42px,#96737329 42px 43px),repeating-linear-gradient(90deg,#0000 0 42px,#96737329 42px 43px),#f8efe8;place-items:center;min-height:min(112vw,620px);padding:2rem;display:grid}.scan-placeholder span{font-size:1.5rem;font-weight:850}.scan-placeholder small{max-width:15rem}.answer-grid{background:#241b1bb3;border:2px solid #241b1bb3;gap:1px;display:grid;position:absolute}.scan-stage-with-image .answer-grid{background:0 0;border:0;gap:0}.answer-grid-editor{outline-offset:4px;outline:3px solid #ed6f86b3}.puzzle-cell{border:0;border-radius:0;min-width:0;min-height:0}.input-cell{color:#241b1b;text-align:center;text-transform:uppercase;width:100%;height:100%;box-shadow:none;background:#ffffffeb;padding:0;font-size:clamp(.8rem,4vw,1.35rem);font-weight:850}.scan-stage-with-image .input-cell{background:rgba(255, 255, 255, var(--overlay-cell-opacity,.72));border:1px solid #241b1b47}.input-cell:focus{z-index:1;outline:3px solid #ed6f86;position:relative}.blocked-cell{background:#1c1616b8}.scan-stage-with-image .blocked-cell{pointer-events:none;background:0 0}.correct-cell{background:#79d68ab8;box-shadow:inset 0 0 0 2px #2c873c6b}.wrong-cell{background:#ff7e8bb8;box-shadow:inset 0 0 0 2px #ae2a3a6b}.revealed-cell{background:#ffd67aad;box-shadow:inset 0 0 0 2px #d38b2257}.progress-row{background:#f2dedb;border-radius:999px;height:.55rem;margin:.9rem 0;overflow:hidden}.progress-row span{border-radius:inherit;background:linear-gradient(90deg,#ed6f86,#f7a066);height:100%;transition:width .18s;display:block}.puzzle-actions,.editor-actions{grid-template-columns:1fr;gap:.65rem;display:grid}.result-note{color:#6c5322;background:#fff4d7;border-radius:18px;margin:.9rem 0 0;padding:.85rem}.success-note{color:#275e31;background:#dff6dc}.source-reveal{gap:.75rem;display:grid}.source-toggle-button{color:#8f3f52;width:100%;box-shadow:none;background:#fff7f8;border:1px solid #ed6f8638;font-weight:850}.source-image-view{background:#fff;border:1px solid #60474724;border-radius:22px;overflow:hidden}.source-image-view img{object-fit:contain;width:100%;max-height:72vh;display:block}.number-answer-card{gap:.85rem;display:grid}.number-image-frame{background:#fff;border:1px solid #60474724;border-radius:0;overflow:hidden}.number-image-frame img{object-fit:contain;width:100%;max-height:min(92vh,760px);display:block}.number-answer-panel{background:linear-gradient(135deg, var(--answer-feedback-color), #ffffffdb);border:1px solid #60474724;border-radius:24px;gap:.55rem;padding:1rem;transition:background .16s,box-shadow .16s;display:grid}.number-answer-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.number-answer-row input{text-align:center;background:#ffffffd1;border-color:#60474738;font-size:1.3rem;font-weight:900}.number-answer-row span{color:#604747;font-weight:900}.number-answer-panel p{color:#604747;margin:0;font-weight:800}.number-answer-correct{box-shadow:inset 0 0 0 2px #2c873c47}.number-answer-wrong{box-shadow:inset 0 0 0 2px #ae2a3a2e}.matching-card{gap:.85rem;display:grid}.matching-image-frame img{max-height:min(74vh,860px)}.matching-layout{gap:.85rem;display:grid}.matching-answer-list{gap:.55rem;display:grid}.matching-row{background:#ffffffad;border:1px solid #6047471f;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem .65rem;padding:.65rem;display:grid}.matching-item-label{color:#8f3f52;background:#ffe2e6;border-radius:999px;place-items:center;width:2.2rem;height:2.2rem;font-weight:900;display:inline-grid}.matching-item-text{color:#604747;font-weight:800}.matching-row select{grid-column:1/-1}.matching-correct{background:#79d68a2e;border-color:#37a5505c}.matching-wrong{background:#ed6f8629;border-color:#dc486157}.matching-revealed{background:#f7a06629;border-color:#f7a06661}.matching-option-list{color:#604747;background:#fff0e7;border-radius:22px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.85rem;display:grid}.matching-option-list span{font-size:.88rem}.matching-option-list strong{color:#ad4960}.word-search-card{gap:.85rem;display:grid}.word-search-playfield{min-width:0;min-height:0;display:grid;position:relative}.word-marker-layer{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:visible}.word-marker-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.word-marker-found{stroke:#d62c4e47}.word-marker-revealed{stroke:#f69a3342}.word-marker-selected{stroke:#ed6f8633}.word-grid{z-index:1;touch-action:none;-webkit-user-select:none;user-select:none;background:#241b1b47;border:1px solid #241b1b42;gap:1px;width:100%;height:100%;display:grid;position:relative}.word-cell{aspect-ratio:1;min-height:0;box-shadow:none;color:#3f3a3a;background:#fffffff5;border:0;border-radius:0;padding:0;font-size:clamp(.72rem,3.6vw,1.05rem);font-weight:900;line-height:1}.word-cell:focus-visible{z-index:1;outline:2px solid #ed6f86;position:relative}.selected-word-cell{color:#7d3446;box-shadow:none;background:#ffe0e69e}.found-word-cell{color:#6e2335;background:#fffffff5}.found-word-cell.selected-word-cell{background:#ffe0e69e}.word-list{color:#604747;background:#fff0e7;border-radius:22px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .7rem;padding:.9rem;font-size:.88rem;font-weight:850;display:grid}.found-word{color:#ad4960;text-decoration:line-through;text-decoration-thickness:.16em}.revealed-word{color:#bd7220;text-decoration:line-through;text-decoration-thickness:.16em}.footer-note{color:#806666;margin:1rem 0 0;font-size:.88rem}.music-toggle-button{background:#fff8f0db;border:1px solid #845b5b1a;flex:none;width:42px;min-width:42px;min-height:42px;padding:.52rem;box-shadow:0 8px 22px #5c3a3a14}.music-toggle-icon{object-fit:contain;opacity:.82;width:1.25rem;height:1.25rem;display:block}.editor-shell,.preview-shell,.progress-shell{min-height:100vh;padding:1rem}.editor-shell{background:radial-gradient(circle at 100% 0,#ffd69dbf,#0000 34rem),#fff9ef}.editor-header,.preview-header,.progress-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;width:min(100%,1220px);margin:0 auto 1rem;display:flex}.editor-header h1,.preview-header h1,.progress-header h1{font-size:clamp(2rem,7vw,3.6rem)}.header-links,.preview-switcher{flex-wrap:wrap}.editor-grid{grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:1rem;width:min(100%,1220px);margin:0 auto;display:grid}.editor-panel,.editor-preview{padding:1rem}.editor-panel{gap:.9rem;display:grid}.workflow-note{color:#604747;background:#fff2dc;border-radius:22px;padding:1rem}.workflow-note h2{font-size:1.2rem}.workflow-note p{margin-bottom:0}.ai-prompt-card{background:#fff7f0;border-radius:22px;gap:.75rem;padding:1rem;display:grid}.ai-prompt-header{gap:.7rem;display:grid}.ai-prompt-header h2{font-size:1.2rem}.ai-prompt-header p{color:#806666;margin:.3rem 0 0}.ai-prompt-header button{min-height:38px;box-shadow:none;font-size:.9rem;font-weight:850}.ai-prompt-textarea{white-space:pre;min-height:260px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.45}.source-image-card{background:#fff7f0;border-radius:22px;gap:.75rem;padding:1rem;display:grid}.source-image-card h2{font-size:1.2rem}.source-image-card p{color:#806666;margin:0}.paste-dropzone{color:#604747;cursor:text;background:#ffffffa6;border:2px dashed #ed6f8659;border-radius:18px;gap:.25rem;padding:.9rem;display:grid}.paste-dropzone:focus{outline:3px solid #ed6f8659}.paste-dropzone span{color:#806666;font-size:.86rem}.source-image-preview{gap:.65rem;display:grid}.image-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.image-tools button{min-height:38px;box-shadow:none;font-size:.9rem}.source-image-preview img{object-fit:contain;background:#fff;border-radius:16px;width:100%;max-height:260px}label,fieldset{color:#604747;border:0;gap:.4rem;margin:0;padding:0;font-size:.9rem;font-weight:750;display:grid}legend{color:#604747;margin:0 0 .45rem;font-weight:850}input,textarea,select{color:#241b1b;background:#ffffffe0;border:1px solid #60474733;border-radius:16px;width:100%;padding:.78rem .85rem}textarea{resize:vertical}select{appearance:none}.solution-textarea{letter-spacing:.08em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;line-height:1.45}.two-column-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.hint{color:#806666;margin:-.4rem 0 0;font-size:.86rem}.preview-help{color:#806666;margin:.5rem 0 1rem;font-size:.9rem}.overlay-control-card{background:#fff7f0;border-radius:22px;margin:0 0 .9rem;padding:.9rem}.overlay-control-card h3{margin:0 0 .35rem}.overlay-control-card p{color:#806666;margin:0;font-size:.9rem}.preview-toolbar{background:#fff7f0;border-radius:22px;gap:.7rem;margin:0 0 .65rem;padding:.9rem;display:grid}.preview-toolbar label{color:#604747}.preview-toolbar input[type=range]{padding:0}.preview-zoom-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.preview-zoom-actions button{min-height:38px;box-shadow:none}.calibration-viewport{touch-action:pan-x pan-y;background:#ffffff80;border:1px solid #60474729;border-radius:0;max-height:min(76vh,980px);padding:.45rem;overflow:auto}.calibration-zoom{min-width:330px;transform:scale(var(--preview-zoom));transform-origin:0 0}.hint code{background:#f5dfdb;border-radius:7px;padding:.08rem .28rem}.sticky-preview{position:sticky;top:1rem}.preview-shell{color:#f8efe8;background:radial-gradient(circle at 0 0,#ed6f8647,#0000 34rem),#101421}.preview-header{color:#fff}.preview-header p{color:#cbd0db}.preview-date-card,.preview-public-frame{background:#ffffff14;border:1px solid #ffffff1f;border-radius:28px;width:min(100%,900px);margin:0 auto 1rem;box-shadow:0 30px 80px #00000038}.preview-date-card{gap:.9rem;padding:1rem;display:grid}.preview-date-card label{color:#fff}.preview-date-card input{max-width:260px}.preview-date-card div{gap:.25rem;display:grid}.preview-date-card strong{color:#fff;font-size:1.05rem}.preview-date-card span{color:#cbd0db}.preview-public-frame{background:var(--viewport-background);overflow:hidden}.preview-public-frame .app-shell{margin-inline:auto}.device-grid{grid-template-columns:repeat(2,minmax(0,max-content));justify-content:center;gap:1.25rem;width:min(100%,1220px);margin:0 auto;display:grid}.device-card{background:#ffffff14;border-color:#ffffff1f;padding:1rem}.device-card-header{margin:0 0 .8rem}.device-card h2{color:#fff;font-size:1.15rem}.device-card span{color:#cbd0db;font-size:.85rem}.device-shell{width:calc(var(--device-width) * var(--device-scale));height:calc(var(--device-height) * var(--device-scale));background:#fff;border:12px solid #0a0d14;border-radius:34px;overflow:hidden;box-shadow:0 30px 80px #00000059}.device-shell iframe{width:var(--device-width);height:var(--device-height);transform:scale(var(--device-scale));transform-origin:0 0;border:0}.progress-shell{color:#f8efe8;background:radial-gradient(circle at 0 0,#ed6f863d,#0000 34rem),radial-gradient(circle at 100% 100%,#f7a0662e,#0000 30rem),#101421}.progress-header{color:#fff}.progress-header p{color:#cbd0db;max-width:42rem}.progress-summary-grid,.progress-device-grid{width:min(100%,1220px);margin:0 auto 1rem}.progress-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;display:grid}.progress-summary-card,.progress-device-card,.progress-puzzle-card,.progress-message{background:#ffffff14;border:1px solid #ffffff1f;border-radius:28px;box-shadow:0 30px 80px #00000038}.progress-summary-card{gap:.2rem;padding:1rem;display:grid}.progress-summary-card span,.progress-device-card header span,.progress-device-card header p,.progress-detail-grid dt{color:#cbd0db;font-size:.82rem}.progress-summary-card strong{color:#fff;font-size:clamp(1.8rem,5vw,2.7rem);line-height:1}.progress-summary-grid>button{width:100%;min-height:100%}.progress-message{color:#f8efe8;width:min(100%,1220px);margin:0 auto 1rem;padding:1rem}.progress-device-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.progress-device-card{gap:1rem;padding:1rem;display:grid}.progress-device-card header{align-items:flex-start}.progress-device-card h2,.progress-puzzle-card h3{color:#fff}.progress-device-card h2{font-size:1.25rem}.progress-device-card header p{overflow-wrap:anywhere;margin:.2rem 0 0}.progress-puzzle-list{gap:.75rem;display:grid}.progress-puzzle-card{gap:.85rem;padding:.9rem;display:grid}.progress-solved{background:#79d68a1c;border-color:#79d68a61}.progress-puzzle-head{align-items:flex-start}.progress-puzzle-head h3{margin:.45rem 0 0;font-size:1rem}.progress-puzzle-head strong{color:#ffd7df;text-align:right;white-space:nowrap;font-size:.82rem}.progress-bar{background:#ffffff1f;border-radius:999px;height:.72rem;overflow:hidden}.progress-bar span{border-radius:inherit;background:linear-gradient(135deg,#ed6f86,#f7a066);height:100%;display:block}.progress-solved .progress-bar span{background:linear-gradient(135deg,#79d68a,#5fd5c2)}.progress-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;display:grid}.progress-detail-grid div{gap:.15rem;display:grid}.progress-detail-grid dd{color:#fff;margin:0;font-weight:800}.progress-empty{color:#cbd0db;margin:0}@media (width>=420px){.puzzle-actions{grid-template-columns:1fr 1fr 1fr}}@media (width>=760px){.app-shell{width:min(100%,860px);padding-inline:clamp(1.4rem,4vw,3rem)}.hero{padding:2rem 0 1.35rem}.hero p:not(.eyebrow){max-width:42rem;font-size:1.08rem}.today-card{padding:1.35rem 1.5rem}.puzzle-card{padding:1.15rem}.number-answer-card{grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr);align-items:start}.number-answer-card .puzzle-meta,.number-answer-card .puzzle-actions{grid-column:1/-1}.number-answer-card .number-image-frame{grid-column:1}.number-answer-card .number-answer-panel{top:max(1rem, env(safe-area-inset-top));grid-column:2;position:sticky}.number-answer-card .number-image-frame img{max-height:min(78vh,820px)}.word-list{grid-template-columns:repeat(3,minmax(0,1fr))}.matching-layout{grid-template-columns:minmax(0,1.1fr) minmax(240px,.8fr);align-items:start}.matching-option-list{top:max(1rem, env(safe-area-inset-top));position:sticky}}@media (width<=900px){.editor-grid,.device-grid,.progress-device-grid,.progress-summary-grid{grid-template-columns:1fr}.device-card{overflow-x:auto}}@media (width<=520px){.today-card{flex-direction:column;align-items:stretch}.footer-note{flex-direction:row;align-items:center}.editor-shell,.preview-shell,.progress-shell{padding:.8rem}.progress-device-card header,.progress-puzzle-head{flex-direction:column;align-items:flex-start}.progress-puzzle-head strong{text-align:left}}
