:root{color-scheme:light;--paper:#f5f2eb;--ink:#302f2b;--muted:#68655d;--line:#d8d3c8;--white:#fffcf6;--accent:#394c46;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,select:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #6a8d80;outline-offset:4px}[hidden]{display:none!important}
.site-header,main,footer{width:min(1120px,calc(100% - 64px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:19px;letter-spacing:.07em;text-decoration:none}.brand span{color:#817969;margin-right:5px}.site-header>a:last-child{font-size:13px}h1{font-size:clamp(24px,3.2vw,34px);font-weight:650;letter-spacing:.035em;margin:38px 0 10px}
.sample{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,1fr);align-items:center;gap:48px;padding:4px 0 48px}.display{position:relative;min-width:0;text-align:center}#gem{height:clamp(330px,40vw,530px);width:100%;position:relative}#gem canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-5px}#fallback{position:absolute;width:75%;height:75%;object-fit:contain;top:4%;left:12.5%}.gesture{font-size:12px;color:var(--muted);margin:10px 0}.status{font-size:13px;line-height:1.8;min-height:24px;margin:8px 0 0}.retry{border:1px solid var(--line);background:var(--white);padding:9px 16px;border-radius:6px}
.controls{min-width:0;padding-top:20px}fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}legend{font-size:13px;font-weight:600;padding:0;margin-bottom:13px}.stone-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stone-options button{border:1px solid transparent;border-radius:9px;background:transparent;padding:8px 4px 11px;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12px;line-height:1.6;min-height:136px}.stone-options img{width:min(88px,100%);height:auto;aspect-ratio:1;object-fit:contain}.stone-options button[aria-pressed=true]{border-color:#8e9b8f;background:var(--white)}.stone-options button:hover{background:#ebe8df}.cut{font-size:13px;color:var(--muted);margin:-9px 0 24px}.light-options{display:flex;gap:8px}.light-options button{padding:10px 19px;border:1px solid var(--line);background:transparent;border-radius:6px}.light-options button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.reset{border:0;background:transparent;padding:8px 0;text-decoration:underline;text-underline-offset:5px;font-size:13px}.export{margin-top:23px;padding-top:23px;border-top:1px solid var(--line)}.export label{display:block;font-size:13px;margin-bottom:10px}.export-row{display:flex;gap:9px;flex-wrap:wrap}.export select{border:1px solid var(--line);background:var(--white);border-radius:6px;padding:12px;flex:1;min-width:150px}.export button{background:var(--accent);color:white;border:1px solid var(--accent);border-radius:6px;padding:12px 18px}.save-status{font-size:12px;min-height:20px;margin:8px 0}.format{font-size:12px;color:var(--muted);margin:25px 0 9px}.product-link{font-size:15px;font-weight:600;line-height:1.8}
footer{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);padding:23px 0 30px;font-size:12px;color:var(--muted)}footer span{margin-right:auto}.notice{line-height:1.8}.terms{max-width:760px;padding-bottom:40px;line-height:1.9}.terms h1{font-size:27px}.terms h2{font-size:19px;margin-top:32px}.terms p{font-size:14px}.terms code{overflow-wrap:anywhere}
@media(max-width:760px){.site-header,main,footer{width:calc(100% - 36px)}.site-header{padding:22px 0}.site-header>a:last-child{font-size:11px}h1{font-size:25px;margin-top:26px}.sample{grid-template-columns:1fr;gap:10px;padding-bottom:38px}#gem{height:min(85vw,440px)}.controls{padding-top:5px}.stone-options button{min-height:128px}.stone-options{gap:10px}.cut{margin-bottom:18px}.export{margin-top:17px}.format{margin-top:15px}footer{gap:15px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .12s,border-color .12s}}
